Function at 0x45ab80
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, edx
mov edx, ecx
push esi
push edi
mov dword [ebp - 4], ebx
mov ecx, dword [ebx]
movzx edi, cx
shr ecx, 0x10
mov esi, edi
imul esi, ecx
imul ecx, ecx
imul edi, edi
mov dword [ebp - 8], edx
mov eax, esi
shl esi, 0x11
shr eax, 0xf
add ecx, eax
lea eax, [edi + esi]
cmp eax, esi
mov dword [edx], eax
movzx edx, word [ebx + 2]
lea edi, [ecx + 1]
mov eax, dword [ebp - 4]
cmovae edi, ecx
mov dword [ebp - 0xc], edi
movzx edi, word [ebx]
movzx ebx, word [ebx + 4]
movzx ecx, word [eax + 6]
mov esi, ebx
imul esi, edx
mov eax, ecx
imul eax, edi
imul ecx, edx
add esi, eax
cmp esi, eax
mov eax, esi
lea edx, [ecx + 0x10000]
cmovae edx, ecx
shr eax, 0x10
add edx, eax
imul ebx, edi
shl esi, 0x10
lea eax, [edx + 1]
add ebx, esi
cmp ebx, esi
mov esi, dword [ebp - 0xc]
cmovae eax, edx
mov edx, eax
add eax, eax
shr edx, 0x1f
test ebx, ebx
lea ecx, [eax + 1]
cmovns ecx, eax
lea eax, [ebx + ebx]
add esi, eax
mov dword [ebp - 0x10], ecx
mov ebx, edx
cmp esi, eax
jae 0x45ac2e
add ecx, 1
mov dword [ebp - 0x10], ecx
jne 0x45ac2e
lea ebx, [edx + 1]
mov eax, dword [ebp - 8]
mov dword [eax + 4], esi
mov eax, dword [ebp - 4]
mov esi, dword [eax + 4]
movzx edi, si
shr esi, 0x10
mov edx, edi
imul edx, esi
imul esi, esi
imul edi, edi
mov eax, edx
shl edx, 0x11
shr eax, 0xf
add esi, eax
add edi, edx
cmp edi, edx
mov edx, dword [ebp - 0x10]
lea ecx, [esi + 1]
cmovae ecx, esi
add edx, edi
cmp edx, edi
mov dword [ebp - 0x10], edx
lea eax, [ecx + 1]
cmovae eax, ecx
add ebx, eax
cmp ebx, eax
mov dword [ebp - 0xc], ebx
mov eax, dword [ebp - 4]
sbb ebx, ebx
neg ebx
movzx edx, word [eax + 2]
movzx edi, word [eax]
movzx ecx, word [eax + 0xa]
movzx esi, word [eax + 8]
mov eax, ecx
imul eax, edi
imul ecx, edx
imul esi, edx
add esi, eax
cmp esi, eax
mov eax, esi
lea edx, [ecx + 0x10000]
cmovae edx, ecx
shr eax, 0x10
add edx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 8]
lea eax, [edx + 1]
imul ecx, edi
mov edi, dword [ebp - 0x10]
add ecx, esi
cmp ecx, esi
lea esi, [ebx + 1]
cmovae eax, edx
test eax, eax
cmovns esi, ebx
add eax, eax
test ecx, ecx
lea edx, [eax + 1]
cmovns edx, eax
lea eax, [ecx + ecx]
add edi, eax
mov ecx, esi
cmp edi, eax
jae 0x45acea
add edx, 1
jne 0x45acea
lea ecx, [esi + 1]
mov eax, dword [ebp - 0xc]
lea ebx, [ecx + 1]
add eax, edx
cmp eax, edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
cmovae ebx, ecx
mov dword [ebp - 0x10], ebx
mov dword [eax + 8], edi
mov eax, dword [ebp - 4]
movzx edx, word [eax + 2]
movzx ebx, word [eax + 0xc]
movzx edi, word [eax]
mov esi, ebx
movzx ecx, word [eax + 0xe]
imul esi, edx
mov eax, ecx
imul eax, edi
imul ecx, edx
add esi, eax
cmp esi, eax
mov eax, esi
lea edx, [ecx + 0x10000]
cmovae edx, ecx
mov ecx, dword [ebp - 0xc]
shr eax, 0x10
add edx, eax
imul ebx, edi
shl esi, 0x10
lea eax, [edx + 1]
add ebx, esi
cmp ebx, esi
cmovae eax, edx
mov esi, eax
add eax, eax
shr esi, 0x1f
test ebx, ebx
mov edi, esi
lea edx, [eax + 1]
cmovns edx, eax
lea eax, [ebx + ebx]
add ecx, eax
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jae 0x45ad6e
add edx, 1
jne 0x45ad6e
lea edi, [esi + 1]
mov eax, dword [ebp - 0x10]
lea ebx, [edi + 1]
add eax, edx
cmp eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
cmovae ebx, edi
movzx ecx, word [eax + 6]
movzx edi, word [eax + 4]
movzx edx, word [eax + 0xa]
movzx esi, word [eax + 8]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 8]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0xc]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
cmp ecx, eax
jae 0x45adef
add esi, 1
jne 0x45adef
lea edx, [edi + 1]
mov eax, dword [ebp - 0x10]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
cmovae ebx, edx
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 4]
mov esi, dword [eax + 8]
movzx edi, si
shr esi, 0x10
mov edx, edi
imul edx, esi
imul esi, esi
imul edi, edi
mov eax, edx
shl edx, 0x11
shr eax, 0xf
add esi, eax
add edi, edx
cmp edi, edx
mov edx, dword [ebp - 0x10]
lea ecx, [esi + 1]
cmovae ecx, esi
add edx, edi
cmp edx, edi
mov dword [ebp - 0x10], edx
lea eax, [ecx + 1]
cmovae eax, ecx
lea ecx, [ebx + eax]
cmp ecx, eax
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 4]
sbb ebx, ebx
neg ebx
movzx ecx, word [eax + 6]
movzx edi, word [eax + 4]
movzx edx, word [eax + 0xe]
movzx esi, word [eax + 0xc]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0xc]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
mov esi, edi
lea ecx, [eax + 1]
cmovns ecx, eax
lea eax, [edx + edx]
mov edx, dword [ebp - 0x10]
add edx, eax
mov dword [ebp - 0x10], edx
cmp edx, eax
jae 0x45aec0
add ecx, 1
jne 0x45aec0
lea esi, [edi + 1]
mov eax, dword [ebp - 0xc]
lea ebx, [esi + 1]
add eax, ecx
cmp eax, ecx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
cmovae ebx, esi
movzx edx, word [eax + 2]
movzx edi, word [eax]
movzx ecx, word [eax + 0x12]
movzx esi, word [eax + 0x10]
mov eax, ecx
imul ecx, edx
imul eax, edi
imul esi, edx
add esi, eax
cmp esi, eax
lea edx, [ecx + 0x10000]
mov eax, esi
cmovae edx, ecx
shr eax, 0x10
add edx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 0x10]
lea eax, [edx + 1]
imul ecx, edi
add ecx, esi
cmp ecx, esi
lea esi, [ebx + 1]
cmovae eax, edx
test eax, eax
cmovns esi, ebx
add eax, eax
test ecx, ecx
mov edi, esi
lea edx, [eax + 1]
cmovns edx, eax
lea eax, [ecx + ecx]
mov ecx, dword [ebp - 0x10]
add ecx, eax
cmp ecx, eax
jae 0x45af40
add edx, 1
jne 0x45af40
lea edi, [esi + 1]
mov eax, dword [ebp - 0xc]
lea ebx, [edi + 1]
add eax, edx
cmp eax, edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
cmovae ebx, edi
mov dword [ebp - 0x10], ebx
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 4]
movzx edx, word [eax + 2]
movzx ebx, word [eax + 0x14]
movzx edi, word [eax]
mov esi, ebx
movzx ecx, word [eax + 0x16]
imul esi, edx
mov eax, ecx
imul eax, edi
imul ecx, edx
add esi, eax
cmp esi, eax
mov eax, esi
lea edx, [ecx + 0x10000]
cmovae edx, ecx
mov ecx, dword [ebp - 0xc]
shr eax, 0x10
add edx, eax
imul ebx, edi
shl esi, 0x10
lea eax, [edx + 1]
add ebx, esi
cmp ebx, esi
cmovae eax, edx
mov esi, eax
add eax, eax
shr esi, 0x1f
test ebx, ebx
mov edi, esi
lea edx, [eax + 1]
cmovns edx, eax
lea eax, [ebx + ebx]
add ecx, eax
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jae 0x45afc4
add edx, 1
jne 0x45afc4
lea edi, [esi + 1]
mov eax, dword [ebp - 0x10]
lea ebx, [edi + 1]
add eax, edx
cmp eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
cmovae ebx, edi
movzx ecx, word [eax + 6]
movzx edi, word [eax + 4]
movzx edx, word [eax + 0x12]
movzx esi, word [eax + 0x10]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x10]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0xc]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jae 0x45b048
add esi, 1
jne 0x45b048
lea edx, [edi + 1]
mov eax, dword [ebp - 0x10]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
cmovae ebx, edx
movzx ecx, word [eax + 0xa]
movzx edi, word [eax + 8]
movzx edx, word [eax + 0xe]
movzx esi, word [eax + 0xc]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0xc]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0xc]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
cmp ecx, eax
jae 0x45b0c9
add esi, 1
jne 0x45b0c9
lea edx, [edi + 1]
mov eax, dword [ebp - 0x10]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
cmovae ebx, edx
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0xc]
movzx edi, si
shr esi, 0x10
mov edx, edi
imul edx, esi
imul esi, esi
imul edi, edi
mov eax, edx
shl edx, 0x11
shr eax, 0xf
add esi, eax
add edi, edx
cmp edi, edx
mov edx, dword [ebp - 0x10]
lea ecx, [esi + 1]
cmovae ecx, esi
add edx, edi
cmp edx, edi
mov dword [ebp - 0x10], edx
lea eax, [ecx + 1]
cmovae eax, ecx
lea ecx, [ebx + eax]
cmp ecx, eax
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 4]
sbb ebx, ebx
neg ebx
movzx ecx, word [eax + 0xa]
movzx edi, word [eax + 8]
movzx edx, word [eax + 0x12]
movzx esi, word [eax + 0x10]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x10]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0x10]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
mov dword [ebp - 0x10], ecx
cmp ecx, eax
jae 0x45b19a
add esi, 1
jne 0x45b19a
lea edx, [edi + 1]
mov eax, dword [ebp - 0xc]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
cmovae ebx, edx
movzx ecx, word [eax + 6]
movzx edi, word [eax + 4]
movzx edx, word [eax + 0x16]
movzx esi, word [eax + 0x14]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x14]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0x10]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
mov dword [ebp - 0x10], ecx
cmp ecx, eax
jae 0x45b21e
add esi, 1
jne 0x45b21e
lea edx, [edi + 1]
mov eax, dword [ebp - 0xc]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
cmovae ebx, edx
movzx edx, word [eax + 2]
movzx edi, word [eax]
movzx ecx, word [eax + 0x1a]
movzx esi, word [eax + 0x18]
mov eax, ecx
imul ecx, edx
imul eax, edi
imul esi, edx
add esi, eax
cmp esi, eax
lea edx, [ecx + 0x10000]
mov eax, esi
cmovae edx, ecx
shr eax, 0x10
add edx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 0x18]
lea eax, [edx + 1]
imul ecx, edi
add ecx, esi
cmp ecx, esi
lea esi, [ebx + 1]
cmovae eax, edx
test eax, eax
cmovns esi, ebx
add eax, eax
test ecx, ecx
mov edi, esi
lea edx, [eax + 1]
cmovns edx, eax
lea eax, [ecx + ecx]
mov ecx, dword [ebp - 0x10]
add ecx, eax
cmp ecx, eax
jae 0x45b29e
add edx, 1
jne 0x45b29e
lea edi, [esi + 1]
mov eax, dword [ebp - 0xc]
lea ebx, [edi + 1]
add eax, edx
cmp eax, edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
cmovae ebx, edi
mov dword [ebp - 0x10], ebx
mov dword [eax + 0x18], ecx
mov eax, dword [ebp - 4]
movzx edx, word [eax + 2]
movzx ebx, word [eax + 0x1c]
movzx edi, word [eax]
mov esi, ebx
movzx ecx, word [eax + 0x1e]
imul esi, edx
mov eax, ecx
imul eax, edi
imul ecx, edx
add esi, eax
cmp esi, eax
mov eax, esi
lea edx, [ecx + 0x10000]
cmovae edx, ecx
mov ecx, dword [ebp - 0xc]
shr eax, 0x10
add edx, eax
imul ebx, edi
shl esi, 0x10
lea eax, [edx + 1]
add ebx, esi
cmp ebx, esi
cmovae eax, edx
mov esi, eax
add eax, eax
shr esi, 0x1f
test ebx, ebx
mov edi, esi
lea edx, [eax + 1]
cmovns edx, eax
lea eax, [ebx + ebx]
add ecx, eax
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jae 0x45b322
add edx, 1
jne 0x45b322
lea edi, [esi + 1]
mov eax, dword [ebp - 0x10]
lea ebx, [edi + 1]
add eax, edx
cmp eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
cmovae ebx, edi
movzx ecx, word [eax + 6]
movzx edi, word [eax + 4]
movzx edx, word [eax + 0x1a]
movzx esi, word [eax + 0x18]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x18]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0xc]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jae 0x45b3a6
add esi, 1
jne 0x45b3a6
lea edx, [edi + 1]
mov eax, dword [ebp - 0x10]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
cmovae ebx, edx
movzx ecx, word [eax + 0xa]
movzx edi, word [eax + 8]
movzx edx, word [eax + 0x16]
movzx esi, word [eax + 0x14]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x14]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0xc]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jae 0x45b42a
add esi, 1
jne 0x45b42a
lea edx, [edi + 1]
mov eax, dword [ebp - 0x10]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
cmovae ebx, edx
movzx ecx, word [eax + 0xe]
movzx edi, word [eax + 0xc]
movzx edx, word [eax + 0x12]
movzx esi, word [eax + 0x10]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x10]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0xc]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
cmp ecx, eax
jae 0x45b4ab
add esi, 1
jne 0x45b4ab
lea edx, [edi + 1]
mov eax, dword [ebp - 0x10]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
cmovae ebx, edx
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x10]
movzx edi, si
shr esi, 0x10
mov edx, edi
imul edx, esi
imul esi, esi
imul edi, edi
mov eax, edx
shl edx, 0x11
shr eax, 0xf
add esi, eax
add edi, edx
cmp edi, edx
mov edx, dword [ebp - 0x10]
lea ecx, [esi + 1]
cmovae ecx, esi
add edx, edi
cmp edx, edi
mov dword [ebp - 0x10], edx
lea eax, [ecx + 1]
cmovae eax, ecx
lea ecx, [ebx + eax]
cmp ecx, eax
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 4]
sbb ebx, ebx
neg ebx
movzx ecx, word [eax + 0xe]
movzx edi, word [eax + 0xc]
movzx edx, word [eax + 0x16]
movzx esi, word [eax + 0x14]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x14]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0x10]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
mov dword [ebp - 0x10], ecx
cmp ecx, eax
jae 0x45b57c
add esi, 1
jne 0x45b57c
lea edx, [edi + 1]
mov eax, dword [ebp - 0xc]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
cmovae ebx, edx
movzx ecx, word [eax + 0xa]
movzx edi, word [eax + 8]
movzx edx, word [eax + 0x1a]
movzx esi, word [eax + 0x18]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x18]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0x10]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
mov dword [ebp - 0x10], ecx
cmp ecx, eax
jae 0x45b600
add esi, 1
jne 0x45b600
lea edx, [edi + 1]
mov eax, dword [ebp - 0xc]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
cmovae ebx, edx
movzx ecx, word [eax + 6]
movzx edi, word [eax + 4]
movzx edx, word [eax + 0x1e]
movzx esi, word [eax + 0x1c]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x1c]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0x10]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
cmp ecx, eax
jae 0x45b681
add esi, 1
jne 0x45b681
lea edx, [edi + 1]
mov eax, dword [ebp - 0xc]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
cmovae ebx, edx
mov dword [ebp - 0x10], ebx
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 0xa]
movzx ebx, word [eax + 0x1c]
movzx edi, word [eax + 8]
mov esi, ebx
movzx edx, word [eax + 0x1e]
imul esi, ecx
mov eax, edx
imul eax, edi
imul edx, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
imul ebx, edi
shl esi, 0x10
lea eax, [ecx + 1]
add ebx, esi
cmp ebx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0xc]
mov esi, eax
add eax, eax
shr esi, 0x1f
test ebx, ebx
mov edi, esi
lea edx, [eax + 1]
cmovns edx, eax
lea eax, [ebx + ebx]
add ecx, eax
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jae 0x45b706
add edx, 1
jne 0x45b706
lea edi, [esi + 1]
mov eax, dword [ebp - 0x10]
lea ebx, [edi + 1]
add eax, edx
cmp eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
cmovae ebx, edi
movzx ecx, word [eax + 0xe]
movzx edi, word [eax + 0xc]
movzx edx, word [eax + 0x1a]
movzx esi, word [eax + 0x18]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x18]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0xc]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jae 0x45b78a
add esi, 1
jne 0x45b78a
lea edx, [edi + 1]
mov eax, dword [ebp - 0x10]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
cmovae ebx, edx
movzx ecx, word [eax + 0x12]
movzx edi, word [eax + 0x10]
movzx edx, word [eax + 0x16]
movzx esi, word [eax + 0x14]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x14]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0xc]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
cmp ecx, eax
jae 0x45b80b
add esi, 1
jne 0x45b80b
lea edx, [edi + 1]
mov eax, dword [ebp - 0x10]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
cmovae ebx, edx
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x14]
movzx edi, si
shr esi, 0x10
mov edx, edi
imul edx, esi
imul esi, esi
imul edi, edi
mov eax, edx
shl edx, 0x11
shr eax, 0xf
add esi, eax
add edi, edx
cmp edi, edx
mov edx, dword [ebp - 0x10]
lea ecx, [esi + 1]
cmovae ecx, esi
add edx, edi
cmp edx, edi
mov dword [ebp - 0x10], edx
lea eax, [ecx + 1]
cmovae eax, ecx
lea ecx, [eax + ebx]
cmp ecx, eax
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 4]
sbb ebx, ebx
neg ebx
movzx ecx, word [eax + 0x12]
movzx edi, word [eax + 0x10]
movzx edx, word [eax + 0x1a]
movzx esi, word [eax + 0x18]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x18]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0x10]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
mov dword [ebp - 0x10], ecx
cmp ecx, eax
jae 0x45b8dc
add esi, 1
jne 0x45b8dc
lea edx, [edi + 1]
mov eax, dword [ebp - 0xc]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
cmovae ebx, edx
movzx ecx, word [eax + 0xe]
movzx edi, word [eax + 0xc]
movzx edx, word [eax + 0x1e]
movzx esi, word [eax + 0x1c]
mov eax, edx
imul edx, ecx
imul eax, edi
imul esi, ecx
add esi, eax
cmp esi, eax
lea ecx, [edx + 0x10000]
mov eax, esi
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x1c]
lea eax, [ecx + 1]
imul edx, edi
add edx, esi
cmp edx, esi
lea esi, [ebx + 1]
cmovae eax, ecx
test eax, eax
cmovns esi, ebx
add eax, eax
test edx, edx
mov edi, esi
lea ecx, [eax + 1]
cmovns ecx, eax
lea eax, [edx + edx]
mov edx, dword [ebp - 0x10]
add edx, eax
cmp edx, eax
jae 0x45b95d
add ecx, 1
jne 0x45b95d
lea edi, [esi + 1]
mov eax, dword [ebp - 0xc]
lea ebx, [edi + 1]
add eax, ecx
cmp eax, ecx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
cmovae ebx, edi
mov dword [ebp - 0x10], ebx
mov dword [eax + 0x28], edx
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 0x12]
movzx ebx, word [eax + 0x1c]
movzx edi, word [eax + 0x10]
mov esi, ebx
movzx edx, word [eax + 0x1e]
imul esi, ecx
mov eax, edx
imul eax, edi
imul edx, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
imul ebx, edi
shl esi, 0x10
lea eax, [ecx + 1]
add ebx, esi
cmp ebx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0xc]
mov esi, eax
add eax, eax
shr esi, 0x1f
test ebx, ebx
mov edi, esi
lea edx, [eax + 1]
cmovns edx, eax
lea eax, [ebx + ebx]
add ecx, eax
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jae 0x45b9e2
add edx, 1
jne 0x45b9e2
lea edi, [esi + 1]
mov eax, dword [ebp - 4]
lea ebx, [edi + 1]
mov esi, dword [ebp - 0x10]
add esi, edx
cmp esi, edx
mov dword [ebp - 0x10], esi
movzx ecx, word [eax + 0x16]
movzx edx, word [eax + 0x1a]
cmovae ebx, edi
movzx edi, word [eax + 0x14]
movzx esi, word [eax + 0x18]
mov eax, edx
imul eax, edi
imul edx, ecx
imul esi, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x18]
lea eax, [ecx + 1]
imul edx, edi
lea edi, [ebx + 1]
add edx, esi
cmp edx, esi
cmovae eax, ecx
mov ecx, dword [ebp - 0xc]
test eax, eax
cmovns edi, ebx
add eax, eax
test edx, edx
lea esi, [eax + 1]
cmovns esi, eax
lea eax, [edx + edx]
add ecx, eax
mov edx, edi
cmp ecx, eax
jae 0x45ba63
add esi, 1
jne 0x45ba63
lea edx, [edi + 1]
mov eax, dword [ebp - 0x10]
lea ebx, [edx + 1]
add eax, esi
cmp eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
cmovae ebx, edx
mov dword [eax + 0x2c], ecx
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x18]
movzx edi, si
shr esi, 0x10
mov edx, edi
imul edx, esi
imul esi, esi
imul edi, edi
mov eax, edx
shl edx, 0x11
shr eax, 0xf
add esi, eax
add edi, edx
cmp edi, edx
lea ecx, [esi + 1]
cmovae ecx, esi
mov esi, dword [ebp - 0x10]
add esi, edi
cmp esi, edi
mov dword [ebp - 0x10], esi
lea eax, [ecx + 1]
cmovae eax, ecx
lea ecx, [ebx + eax]
cmp ecx, eax
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 4]
sbb ebx, ebx
neg ebx
movzx ecx, word [eax + 0x16]
movzx edx, word [eax + 0x1e]
movzx edi, word [eax + 0x14]
movzx esi, word [eax + 0x1c]
mov eax, edx
imul edx, ecx
imul esi, ecx
imul eax, edi
add esi, eax
cmp esi, eax
lea ecx, [edx + 0x10000]
mov eax, esi
cmovae ecx, edx
shr eax, 0x10
add ecx, eax
shl esi, 0x10
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0x1c]
lea eax, [ecx + 1]
imul edx, edi
add edx, esi
cmp edx, esi
lea esi, [ebx + 1]
cmovae eax, ecx
test eax, eax
cmovns esi, ebx
mov ebx, dword [ebp - 0x10]
add eax, eax
test edx, edx
lea ecx, [eax + 1]
cmovns ecx, eax
lea eax, [edx + edx]
add ebx, eax
mov edx, esi
cmp ebx, eax
jae 0x45bb31
add ecx, 1
jne 0x45bb31
lea edx, [esi + 1]
mov eax, dword [ebp - 0xc]
lea esi, [edx + 1]
add eax, ecx
cmp eax, ecx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
cmovae esi, edx
mov dword [ebp - 0x10], esi
mov dword [eax + 0x30], ebx
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 0x1a]
movzx ebx, word [eax + 0x1c]
movzx edi, word [eax + 0x18]
mov esi, ebx
movzx edx, word [eax + 0x1e]
imul esi, ecx
mov eax, edx
imul eax, edi
imul edx, ecx
add esi, eax
cmp esi, eax
mov eax, esi
lea ecx, [edx + 0x10000]
cmovae ecx, edx
shr eax, 0x10
imul ebx, edi
add ecx, eax
shl esi, 0x10
lea eax, [ecx + 1]
add ebx, esi
cmp ebx, esi
mov esi, dword [ebp - 0xc]
cmovae eax, ecx
mov edi, eax
add eax, eax
shr edi, 0x1f
test ebx, ebx
mov edx, edi
lea ecx, [eax + 1]
cmovns ecx, eax
lea eax, [ebx + ebx]
add esi, eax
cmp esi, eax
jae 0x45bbb3
add ecx, 1
jne 0x45bbb3
lea edx, [edi + 1]
mov ebx, dword [ebp - 0x10]
lea eax, [edx + 1]
add ebx, ecx
cmp ebx, ecx
cmovae eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x34], esi
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x1c]
movzx edi, si
shr esi, 0x10
mov edx, edi
imul edx, esi
imul esi, esi
imul edi, edi
mov eax, edx
shl edx, 0x11
shr eax, 0xf
add esi, eax
add edi, edx
cmp edi, edx
mov edx, dword [ebp - 8]
lea ecx, [esi + 1]
cmovae ecx, esi
add ebx, edi
cmp ebx, edi
mov dword [edx + 0x38], ebx
pop edi
pop esi
lea eax, [ecx + 1]
cmovae eax, ecx
add eax, dword [ebp - 0x10]
mov dword [edx + 0x3c], eax
pop ebx
mov esp, ebp
pop ebp
ret