Function at 0x455790
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 0x45583e
add ecx, 1
mov dword [ebp - 0x10], ecx
jne 0x45583e
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 0x4558fa
add edx, 1
jne 0x4558fa
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 0x45597e
add edx, 1
jne 0x45597e
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 0x4559ff
add esi, 1
jne 0x4559ff
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 0x455ad0
add ecx, 1
jne 0x455ad0
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 0x455b50
add edx, 1
jne 0x455b50
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 0x455bd4
add edx, 1
jne 0x455bd4
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 0x455c58
add esi, 1
jne 0x455c58
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 0x455cd9
add esi, 1
jne 0x455cd9
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 0x455daa
add esi, 1
jne 0x455daa
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 0x455e2e
add esi, 1
jne 0x455e2e
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 0x455eae
add edx, 1
jne 0x455eae
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 0x455f32
add edx, 1
jne 0x455f32
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 0x455fb6
add esi, 1
jne 0x455fb6
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 0x45603a
add esi, 1
jne 0x45603a
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 0x4560bb
add esi, 1
jne 0x4560bb
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 0x45618c
add esi, 1
jne 0x45618c
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 0x456210
add esi, 1
jne 0x456210
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 0x456291
add esi, 1
jne 0x456291
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 0x456316
add edx, 1
jne 0x456316
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 0x45639a
add esi, 1
jne 0x45639a
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 0x45641b
add esi, 1
jne 0x45641b
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 0x4564ec
add esi, 1
jne 0x4564ec
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 0x45656d
add ecx, 1
jne 0x45656d
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 0x4565f2
add edx, 1
jne 0x4565f2
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 0x456673
add esi, 1
jne 0x456673
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 0x456741
add ecx, 1
jne 0x456741
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 0x4567c3
add ecx, 1
jne 0x4567c3
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