Function at 0x15994
Capabilities:
Enumerate pe sections

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0x10
push ebx
mov ebx, dword [eax]
movzx ecx, bx
shr ebx, 0x10
mov edx, ecx
imul ecx, ecx
imul edx, ebx
imul ebx, ebx
push esi
mov esi, edx
shl edx, 0x11
shr esi, 0xf
add ecx, edx
add ebx, esi
cmp ecx, edx
jae 0x159c5
inc ebx
mov edx, dword [ebp + 8]
and dword [ebp + 0xc], 0
mov dword [edx], ecx
movzx ecx, word [eax]
movzx esi, word [eax + 4]
push edi
movzx edi, word [eax + 2]
mov dword [ebp - 0x10], ecx
movzx ecx, word [eax + 6]
mov edx, esi
imul esi, dword [ebp - 0x10]
imul edx, edi
mov dword [ebp - 0xc], edi
mov edi, ecx
imul ecx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add edx, edi
cmp edx, edi
jae 0x15a03
add ecx, 0x10000
mov edi, edx
shl edx, 0x10
shr edi, 0x10
add esi, edx
add ecx, edi
cmp esi, edx
jae 0x15a14
inc ecx
mov edx, 0x80000000
test edx, ecx
je 0x15a24
mov dword [ebp + 0xc], 1
add ecx, ecx
test edx, esi
je 0x15a2b
inc ecx
add esi, esi
lea edx, [esi + ebx]
cmp edx, esi
jae 0x15a3a
inc ecx
jne 0x15a3a
inc dword [ebp + 0xc]
and dword [ebp - 4], 0
mov ebx, ecx
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], edx
mov edx, dword [eax + 4]
movzx ecx, dx
shr edx, 0x10
mov esi, ecx
imul ecx, ecx
imul esi, edx
imul edx, edx
mov edi, esi
shl esi, 0x11
shr edi, 0xf
add ecx, esi
add edx, edi
cmp ecx, esi
jae 0x15a6b
inc edx
add ebx, ecx
cmp ebx, ecx
jae 0x15a72
inc edx
add dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], edx
jae 0x15a81
mov dword [ebp - 4], 1
movzx ecx, word [eax + 2]
movzx edi, word [eax]
movzx esi, word [eax + 8]
movzx edx, word [eax + 0xa]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x15ab5
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x15ac6
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x15ad2
inc dword [ebp - 4]
add edx, edx
test ecx, esi
je 0x15ad9
inc edx
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x15ae7
inc edx
jne 0x15ae7
inc dword [ebp - 4]
add dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], edx
jae 0x15af2
inc dword [ebp - 4]
mov ecx, dword [ebp + 8]
and dword [ebp - 8], 0
mov dword [ecx + 8], ebx
movzx ecx, word [eax + 2]
movzx edi, word [eax]
movzx esi, word [eax + 0xc]
mov dword [ebp - 0xc], ecx
movzx ecx, word [eax + 0xe]
mov edx, esi
imul esi, edi
imul edx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, ecx
imul ecx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add edx, edi
cmp edx, edi
jae 0x15b30
add ecx, 0x10000
mov edi, edx
shl edx, 0x10
shr edi, 0x10
add esi, edx
add ecx, edi
cmp esi, edx
jae 0x15b41
inc ecx
mov edx, 0x80000000
test edx, ecx
je 0x15b51
mov dword [ebp - 8], 1
add ecx, ecx
test edx, esi
je 0x15b58
inc ecx
mov ebx, dword [ebp + 0xc]
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x15b69
inc ecx
jne 0x15b69
inc dword [ebp - 8]
add dword [ebp - 4], ecx
cmp dword [ebp - 4], ecx
jae 0x15b74
inc dword [ebp - 8]
movzx ecx, word [eax + 6]
movzx edi, word [eax + 4]
movzx esi, word [eax + 8]
movzx edx, word [eax + 0xa]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x15ba9
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x15bba
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x15bc6
inc dword [ebp - 8]
add edx, edx
test ecx, esi
je 0x15bcd
inc edx
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x15bdb
inc edx
jne 0x15bdb
inc dword [ebp - 8]
add dword [ebp - 4], edx
cmp dword [ebp - 4], edx
jae 0x15be6
inc dword [ebp - 8]
mov ecx, dword [ebp + 8]
and dword [ebp + 0xc], 0
mov dword [ecx + 0xc], ebx
mov edx, dword [eax + 8]
movzx ecx, dx
shr edx, 0x10
mov esi, ecx
imul ecx, ecx
imul esi, edx
imul edx, edx
mov edi, esi
shl esi, 0x11
shr edi, 0xf
add ecx, esi
add edx, edi
cmp ecx, esi
jae 0x15c15
inc edx
add dword [ebp - 4], ecx
cmp dword [ebp - 4], ecx
jae 0x15c1e
inc edx
add dword [ebp - 8], edx
cmp dword [ebp - 8], edx
jae 0x15c2d
mov dword [ebp + 0xc], 1
movzx ecx, word [eax + 6]
movzx edi, word [eax + 4]
movzx esi, word [eax + 0xc]
movzx edx, word [eax + 0xe]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x15c62
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x15c73
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x15c7f
inc dword [ebp + 0xc]
add edx, edx
test ecx, esi
je 0x15c86
inc edx
mov ebx, dword [ebp - 4]
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x15c97
inc edx
jne 0x15c97
inc dword [ebp + 0xc]
add dword [ebp - 8], edx
cmp dword [ebp - 8], edx
jae 0x15ca2
inc dword [ebp + 0xc]
movzx ecx, word [eax + 2]
movzx edi, word [eax]
movzx esi, word [eax + 0x10]
movzx edx, word [eax + 0x12]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x15cd6
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x15ce7
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x15cf3
inc dword [ebp + 0xc]
add edx, edx
test ecx, esi
je 0x15cfa
inc edx
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x15d08
inc edx
jne 0x15d08
inc dword [ebp + 0xc]
add dword [ebp - 8], edx
cmp dword [ebp - 8], edx
jae 0x15d13
inc dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
and dword [ebp - 4], 0
mov dword [ecx + 0x10], ebx
movzx ecx, word [eax + 2]
movzx edi, word [eax]
movzx esi, word [eax + 0x14]
mov dword [ebp - 0xc], ecx
movzx ecx, word [eax + 0x16]
mov edx, esi
imul esi, edi
imul edx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, ecx
imul ecx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add edx, edi
cmp edx, edi
jae 0x15d51
add ecx, 0x10000
mov edi, edx
shl edx, 0x10
shr edi, 0x10
add esi, edx
add ecx, edi
cmp esi, edx
jae 0x15d62
inc ecx
mov edx, 0x80000000
test edx, ecx
je 0x15d72
mov dword [ebp - 4], 1
add ecx, ecx
test edx, esi
je 0x15d79
inc ecx
mov ebx, dword [ebp - 8]
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x15d8a
inc ecx
jne 0x15d8a
inc dword [ebp - 4]
add dword [ebp + 0xc], ecx
cmp dword [ebp + 0xc], ecx
jae 0x15d95
inc dword [ebp - 4]
movzx ecx, word [eax + 6]
movzx edi, word [eax + 4]
movzx esi, word [eax + 0x10]
movzx edx, word [eax + 0x12]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x15dca
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x15ddb
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x15de7
inc dword [ebp - 4]
add edx, edx
test ecx, esi
je 0x15dee
inc edx
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x15dfc
inc edx
jne 0x15dfc
inc dword [ebp - 4]
add dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], edx
jae 0x15e07
inc dword [ebp - 4]
movzx ecx, word [eax + 0xa]
movzx edi, word [eax + 8]
movzx esi, word [eax + 0xc]
movzx edx, word [eax + 0xe]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x15e3c
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x15e4d
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x15e59
inc dword [ebp - 4]
add edx, edx
test ecx, esi
je 0x15e60
inc edx
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x15e6e
inc edx
jne 0x15e6e
inc dword [ebp - 4]
add dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], edx
jae 0x15e79
inc dword [ebp - 4]
mov ecx, dword [ebp + 8]
and dword [ebp - 8], 0
mov dword [ecx + 0x14], ebx
mov edx, dword [eax + 0xc]
movzx ecx, dx
shr edx, 0x10
mov esi, ecx
imul ecx, ecx
imul esi, edx
imul edx, edx
mov edi, esi
shl esi, 0x11
shr edi, 0xf
add ecx, esi
add edx, edi
cmp ecx, esi
jae 0x15ea8
inc edx
add dword [ebp + 0xc], ecx
cmp dword [ebp + 0xc], ecx
jae 0x15eb1
inc edx
add dword [ebp - 4], edx
cmp dword [ebp - 4], edx
jae 0x15ec0
mov dword [ebp - 8], 1
movzx ecx, word [eax + 0xa]
movzx edi, word [eax + 8]
movzx esi, word [eax + 0x10]
movzx edx, word [eax + 0x12]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x15ef5
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x15f06
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x15f12
inc dword [ebp - 8]
add edx, edx
test ecx, esi
je 0x15f19
inc edx
mov ebx, dword [ebp + 0xc]
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x15f2a
inc edx
jne 0x15f2a
inc dword [ebp - 8]
add dword [ebp - 4], edx
cmp dword [ebp - 4], edx
jae 0x15f35
inc dword [ebp - 8]
movzx ecx, word [eax + 6]
movzx edi, word [eax + 4]
movzx esi, word [eax + 0x14]
movzx edx, word [eax + 0x16]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x15f6a
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x15f7b
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x15f87
inc dword [ebp - 8]
add edx, edx
test ecx, esi
je 0x15f8e
inc edx
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x15f9c
inc edx
jne 0x15f9c
inc dword [ebp - 8]
add dword [ebp - 4], edx
cmp dword [ebp - 4], edx
jae 0x15fa7
inc dword [ebp - 8]
movzx ecx, word [eax + 2]
movzx edi, word [eax]
movzx esi, word [eax + 0x18]
movzx edx, word [eax + 0x1a]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x15fdb
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x15fec
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x15ff8
inc dword [ebp - 8]
add edx, edx
test ecx, esi
je 0x15fff
inc edx
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x1600d
inc edx
jne 0x1600d
inc dword [ebp - 8]
add dword [ebp - 4], edx
cmp dword [ebp - 4], edx
jae 0x16018
inc dword [ebp - 8]
mov ecx, dword [ebp + 8]
and dword [ebp + 0xc], 0
mov dword [ecx + 0x18], ebx
movzx ecx, word [eax + 2]
movzx edi, word [eax]
movzx esi, word [eax + 0x1c]
mov dword [ebp - 0xc], ecx
movzx ecx, word [eax + 0x1e]
mov edx, esi
imul esi, edi
imul edx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, ecx
imul ecx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add edx, edi
cmp edx, edi
jae 0x16056
add ecx, 0x10000
mov edi, edx
shl edx, 0x10
shr edi, 0x10
add esi, edx
add ecx, edi
cmp esi, edx
jae 0x16067
inc ecx
mov edx, 0x80000000
test edx, ecx
je 0x16077
mov dword [ebp + 0xc], 1
add ecx, ecx
test edx, esi
je 0x1607e
inc ecx
mov ebx, dword [ebp - 4]
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x1608f
inc ecx
jne 0x1608f
inc dword [ebp + 0xc]
add dword [ebp - 8], ecx
cmp dword [ebp - 8], ecx
jae 0x1609a
inc dword [ebp + 0xc]
movzx ecx, word [eax + 6]
movzx edi, word [eax + 4]
movzx esi, word [eax + 0x18]
movzx edx, word [eax + 0x1a]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x160cf
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x160e0
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x160ec
inc dword [ebp + 0xc]
add edx, edx
test ecx, esi
je 0x160f3
inc edx
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x16101
inc edx
jne 0x16101
inc dword [ebp + 0xc]
add dword [ebp - 8], edx
cmp dword [ebp - 8], edx
jae 0x1610c
inc dword [ebp + 0xc]
movzx ecx, word [eax + 0xa]
movzx edi, word [eax + 8]
movzx esi, word [eax + 0x14]
movzx edx, word [eax + 0x16]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x16141
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x16152
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x1615e
inc dword [ebp + 0xc]
add edx, edx
test ecx, esi
je 0x16165
inc edx
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x16173
inc edx
jne 0x16173
inc dword [ebp + 0xc]
add dword [ebp - 8], edx
cmp dword [ebp - 8], edx
jae 0x1617e
inc dword [ebp + 0xc]
movzx ecx, word [eax + 0xe]
movzx edi, word [eax + 0xc]
movzx esi, word [eax + 0x10]
movzx edx, word [eax + 0x12]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x161b3
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x161c4
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x161d0
inc dword [ebp + 0xc]
add edx, edx
test ecx, esi
je 0x161d7
inc edx
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x161e5
inc edx
jne 0x161e5
inc dword [ebp + 0xc]
add dword [ebp - 8], edx
cmp dword [ebp - 8], edx
jae 0x161f0
inc dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
and dword [ebp - 4], 0
mov dword [ecx + 0x1c], ebx
mov edx, dword [eax + 0x10]
movzx ecx, dx
shr edx, 0x10
mov esi, ecx
imul ecx, ecx
imul esi, edx
imul edx, edx
mov edi, esi
shl esi, 0x11
shr edi, 0xf
add ecx, esi
add edx, edi
cmp ecx, esi
jae 0x1621f
inc edx
add dword [ebp - 8], ecx
cmp dword [ebp - 8], ecx
jae 0x16228
inc edx
add dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], edx
jae 0x16237
mov dword [ebp - 4], 1
movzx ecx, word [eax + 0xe]
movzx edi, word [eax + 0xc]
movzx esi, word [eax + 0x14]
movzx edx, word [eax + 0x16]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x1626c
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x1627d
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x16289
inc dword [ebp - 4]
add edx, edx
test ecx, esi
je 0x16290
inc edx
mov ebx, dword [ebp - 8]
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x162a1
inc edx
jne 0x162a1
inc dword [ebp - 4]
add dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], edx
jae 0x162ac
inc dword [ebp - 4]
movzx ecx, word [eax + 0xa]
movzx edi, word [eax + 8]
movzx esi, word [eax + 0x18]
movzx edx, word [eax + 0x1a]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x162e1
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x162f2
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x162fe
inc dword [ebp - 4]
add edx, edx
test ecx, esi
je 0x16305
inc edx
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x16313
inc edx
jne 0x16313
inc dword [ebp - 4]
add dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], edx
jae 0x1631e
inc dword [ebp - 4]
movzx ecx, word [eax + 6]
movzx edi, word [eax + 4]
movzx esi, word [eax + 0x1c]
movzx edx, word [eax + 0x1e]
mov dword [ebp - 0xc], ecx
mov ecx, esi
imul esi, edi
imul ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, edx
imul edx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add ecx, edi
cmp ecx, edi
jae 0x16353
add edx, 0x10000
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
add esi, ecx
add edx, edi
cmp esi, ecx
jae 0x16364
inc edx
mov ecx, 0x80000000
test ecx, edx
je 0x16370
inc dword [ebp - 4]
add edx, edx
test ecx, esi
je 0x16377
inc edx
add esi, esi
add ebx, esi
cmp ebx, esi
jae 0x16385
inc edx
jne 0x16385
inc dword [ebp - 4]
add dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], edx
jae 0x16390
inc dword [ebp - 4]
mov ecx, dword [ebp + 8]
and dword [ebp - 8], 0
mov dword [ecx + 0x20], ebx
movzx ecx, word [eax + 0xa]
movzx edi, word [eax + 8]
movzx esi, word [eax + 0x1c]
mov dword [ebp - 0xc], ecx
movzx ecx, word [eax + 0x1e]
mov edx, esi
imul esi, edi
imul edx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
mov edi, ecx
imul ecx, dword [ebp - 0xc]
imul edi, dword [ebp - 0x10]
add edx, edi
cmp edx, edi
jae 0x163cf
add ecx, 0x10000
mov edi, edx
shl edx, 0x10
shr edi, 0x10
add esi, edx
add ecx, edi
cmp esi, edx
jae 0x163e0
inc ecx
mov edx, 0x80000000
test edx, ecx
je 0x163f0