Function at 0x10003af0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x54
mov ecx, dword [0x1002ffb8]
mov eax, dword [0x1002ffc0]
mov edx, ecx
imul ecx, ecx
imul edx, eax
push ebx
mov ebx, dword [0x1002ffbc]
imul ecx, ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
mov ecx, ebx
imul ecx, ebx
push ebp
mov dword [esp + 0xc], ecx
mov ecx, eax
push esi
mov esi, dword [0x1002ffb0]
push edi
mov edi, dword [0x1002ffac]
imul ecx, edi
mov edx, ebx
imul edx, esi
mov dword [esp + 0x1c], edx
mov edx, ecx
imul edx, edi
mov edi, dword [0x1002ffb4]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
imul ecx, edi
lea ebp, [eax + eax + 4]
mov dword [esp + 0x2c], ecx
mov edx, esi
imul edx, esi
lea edx, [edx + eax*2]
add edx, edx
lea ecx, [esi + esi]
sub ebp, ecx
mov ecx, dword [esp + 0x20]
imul ebp, edi
sub ebp, edx
imul ecx, eax
mov edx, dword [esp + 0x1c]
neg edx
add edx, edx
sub edx, ecx
mov ecx, dword [0x1002ffb8]
lea edx, [edx + edi*2]
imul ecx, ebx
imul edx, dword [0x1002ffac]
imul ecx, eax
imul eax, esi
add edx, ecx
sub edx, eax
mov ecx, dword [0x1002ffac]
sub edx, ebx
add edx, 3
imul edx, esi
mov eax, 4
sub eax, dword [esp + 0x14]
add ebp, dword [esp + 0x6c]
imul eax, edi
add edx, eax
mov eax, ebx
imul eax, ecx
add edx, eax
mov eax, dword [esp + 0x2c]
sub edx, eax
sub edx, eax
mov eax, dword [esp + 0x28]
sub edx, eax
sub edx, eax
mov eax, dword [esp + 0x18]
sub edx, eax
sub edx, eax
mov eax, ebp
mov ebp, dword [0x1002ffc0]
sub edx, ebp
lea edx, [edx + ebx + 0x40]
mov dword [esp + 0x30], 0
cmp eax, edx
jb 0x1000436a
mov eax, esi
imul eax, edi
mov dword [esp + 0x18], eax
mov eax, ebx
sub eax, ebp
lea edx, [eax + ecx + 1]
imul edx, ecx
mov ecx, dword [esp + 0x18]
lea eax, [edi + ebp]
imul eax, dword [0x1002ffb8]
sub edx, eax
lea eax, [ecx + ebx]
imul eax, ebx
lea ecx, [esi + esi]
add edx, ecx
add eax, edx
lea edx, [eax + eax*2 + 0x5a4d]
mov eax, dword [esp + 0x68]
movzx ecx, word [eax]
cmp ecx, edx
jne 0x1000436a
mov edx, dword [0x1002ffb8]
mov eax, dword [eax + 0x3c]
lea ecx, [edx + edi + 1]
imul ecx, ebx
sub eax, ecx
mov ecx, dword [0x1002ffac]
mov edx, ecx
imul edx, edi
sub eax, ebp
sub eax, esi
add edx, 1
add eax, 0xf8
imul edx, edi
push eax
mov eax, dword [esp + 0x24]
imul eax, ecx
sub edx, eax
mov eax, dword [0x1002ffb8]
lea ecx, [eax + eax]
sub edx, ecx
sub edx, dword [esp + 0x28]
sub edx, ebx
sub edx, esi
add edx, dword [esp + 0x20]
add edx, ebp
add edx, dword [esp + 0x70]
push edx
call fcn.10002080
add esp, 8
test eax, eax
je 0x1000436a
lea edx, [ebp + edi*2]
imul edx, dword [0x1002ffac]
lea eax, [edx + edi - 2]
imul eax, esi
mov edx, edi
imul edx, edi
sub eax, edx
lea ecx, [ebp + ebp]
add eax, ecx
add eax, dword [0x1002ffac]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + 0x3c]
lea edx, [eax + ecx]
mov dword [esp + 0x2c], eax
lea eax, [ebx + ebx*2 - 3]
imul eax, ebp
lea ecx, [edi + edi*2 + 3]
add eax, ecx
mov ecx, dword [esp + 0x2c]
imul eax, ebx
lea edx, [edx + ecx*2]
add eax, edx
add eax, dword [esp + 0x68]
lea ecx, [ebp + ebp*2]
mov edx, 0x4550
sub edx, ecx
cmp dword [eax], edx
mov dword [esp + 0x10], eax
jne 0x1000436a
lea ecx, [ebx + ebx - 2]
imul ecx, esi
lea edx, [ecx + edi*2 + 0x14c]
movzx ecx, word [eax + 4]
cmp ecx, edx
jne 0x1000436a
mov ecx, dword [0x1002ffb8]
mov edx, dword [0x1002ffac]
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x38]
add edx, edx
mov dword [esp + 0x20], ecx
lea ecx, [edx + esi + 1]
mov dword [esp + 0x2c], edx
lea edx, [ecx + ecx*2]
sub edx, dword [esp + 0x1c]
mov ecx, ebp
imul edx, edi
sub ecx, ebx
lea ecx, [ecx + ecx*8]
add edx, ecx
mov ecx, dword [0x1002ffb8]
lea ecx, [ecx + ecx*2]
add ecx, ecx
sub edx, ecx
mov ecx, dword [esp + 0x20]
add edx, 1
test ecx, edx
jne 0x1000436a
movzx edx, word [eax + 0x14]
add edx, eax
lea ecx, [ebp + ebp*4]
shl ecx, 4
lea edx, [ecx + edx + 0x18]
lea ecx, [esi + 1]
imul ecx, esi
imul ecx, edi
movzx eax, word [eax + 6]
lea ecx, [ecx + ebp*2]
mov dword [esp + 0x38], edx
lea edx, [ecx + ecx*2]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x34], edx
add ecx, ebx
lea edx, [ecx + ecx*2]
sub edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
sub edx, 3
imul edx, ebx
add ecx, edx
add ecx, eax
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
je 0x10003ec7
mov ecx, dword [esp + 0x28]
add ecx, 2
imul ecx, edi
lea edx, [ecx + esi*2 + 4]
imul edx, dword [0x1002ffac]
lea eax, [edi + edi*2]
sub eax, dword [0x1002ffb8]
sub eax, ebp
mov ebp, dword [esp + 0x30]
sub eax, esi
lea ecx, [edx + eax*2]
mov eax, dword [esp + 0x34]
lea edx, [esi + esi - 6]
imul edx, ebx
add ecx, edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x38]
add ecx, 0xc
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
jmp 0x10003e20
mov edx, dword [ecx + 4]
test edx, edx
jne 0x10003e49
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
imul eax, dword [0x1002ffac]
sub eax, edi
add eax, dword [ecx]
mov ecx, dword [0x1002ffb8]
add eax, dword [esp + 0x18]
add eax, dword [esp + 0x20]
jmp 0x10003e71
mov ecx, ebx
imul ecx, dword [0x1002ffc0]
mov eax, edi
sub eax, ecx
mov ecx, dword [0x1002ffb8]
imul eax, edi
sub eax, ecx
sub eax, ebx
sub eax, esi
add eax, edx
mov edx, dword [esp + 0x1c]
add eax, dword [edx]
add eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
add edx, ebp
cmp eax, edx
jbe 0x10003eaf
mov edx, dword [esp + 0x14]
lea ebp, [edx + edx]
lea edx, [edi + edi]
sub ebp, edx
imul ebp, dword [0x1002ffac]
add ebp, 2
imul ebp, ecx
lea edx, [esi + esi]
sub ebp, edx
add ebp, 2
imul ebp, esi
add ecx, ecx
add ecx, ecx
sub ebp, ecx
sub ebp, dword [esp + 0x28]
add ebp, dword [esp + 0x2c]
add ebp, eax
mov ecx, dword [esp + 0x1c]
add ecx, 0x28
sub dword [esp + 0x24], 1
mov dword [esp + 0x1c], ecx
jne 0x10003e20
jmp 0x10003ecb
mov ebp, dword [esp + 0x30]
mov eax, dword [0x1002ffc0]
mov ecx, dword [esp + 0x14]
lea edx, [esi + 1]
imul edx, eax
lea edx, [edx + ecx + 2]
imul edx, eax
mov eax, dword [0x1002ffac]
imul esi, eax
imul esi, edi
lea ecx, [esi + ebx + 1]
imul ecx, ebx
sub ecx, edx
mov edx, eax
imul edx, eax
add ecx, edx
sub ecx, dword [0x1002ffb8]
add ecx, edi
imul ecx, ecx, 0x6c
lea eax, [esp + ecx + 0x40]
push eax
call dword [0x10032994]
mov eax, dword [0x1002ffb0]
mov esi, dword [0x1002ffac]
mov edi, dword [0x1002ffbc]
mov ebx, dword [0x1002ffb4]
lea edx, [eax*4]
mov dword [esp + 0x3c], edx
mov edx, dword [0x1002ffb8]
imul edx, esi
mov dword [esp + 0x1c], edx
mov edx, edi
imul edx, edi
mov dword [esp + 0x14], edx
lea ecx, [ebx*4]
lea edx, [ecx + 4]
imul edx, edi
sub edx, dword [esp + 0x3c]
lea eax, [eax + eax*2]
add edx, ecx
mov ecx, dword [0x1002ffc0]
imul edx, edi
mov dword [esp + 0x30], eax
mov eax, edi
imul eax, esi
sub esi, dword [0x1002ffb8]
add ecx, ecx
lea esi, [esi*4 - 8]
imul esi, dword [0x1002ffb0]
add ecx, ecx
add edx, ecx
mov ecx, dword [esp + 0x30]
add esi, edx
lea edx, [ecx - 3]
imul edx, dword [0x1002ffb8]
mov ecx, dword [0x1002ffc0]
add esi, dword [esp + 0x44]
lea ecx, [ecx + ecx*2 + 3]
add edx, ecx
mov ecx, dword [esp + 0x10]
imul edx, ebx
mov dword [esp + 0x38], eax
lea eax, [eax + eax*2]
sub edx, eax
add edx, dword [ecx + 0x50]
push edx
call fcn.10002010
mov edx, dword [0x1002ffac]
mov ecx, dword [esp + 0x20]
mov esi, dword [0x1002ffc0]
add edx, 1
imul edx, edi
sub ecx, edx
add ecx, esi
lea ecx, [ecx + ecx*2]
add eax, ecx
mov ecx, dword [0x1002ffb8]
lea edx, [ecx + ecx*2]
mov ecx, dword [esp + 0x34]
sub ecx, edx
mov edx, dword [0x1002ffb0]
sub ecx, 3
imul ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + ecx*2 - 0xc]
imul ecx, ebx
add eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [0x1002ffac]
imul eax, ebx
mov dword [esp + 0x1c], eax
mov eax, esi
imul eax, ebx
add eax, dword [0x1002ffb8]
add eax, eax
add eax, eax
mov ecx, eax
lea eax, [edx*4]
sub eax, ecx
sub eax, 8
imul eax, edx
mov edx, ebx
imul edx, ebx
mov ecx, 2
sub ecx, edx
imul ecx, esi
mov edx, eax
lea eax, [edi*4]
add edx, eax
lea edx, [edx + ecx*4]
mov esi, 8
sub esi, eax
imul esi, dword [0x1002ffb8]
mov eax, dword [esp + 0x1c]
lea ecx, [eax*4 - 8]
imul ecx, edi
add esi, edx
mov edx, dword [esp + 0x20]
add edx, ebx
lea eax, [ecx + edx*4 + 4]
imul eax, dword [0x1002ffc0]
lea ecx, [ebx + 2]
imul ecx, dword [0x1002ffb0]
add esi, dword [esp + 0x48]
add ecx, edi
lea edx, [eax + ecx*4]
lea eax, [edi*4 + 8]
imul eax, dword [0x1002ffb8]
sub edx, eax
lea eax, [ebx*4]
sub edx, eax
add edx, ebp
push edx
call fcn.10002010
add esp, 8
cmp dword [esp + 0x20], eax
jne 0x1000436a
mov eax, dword [0x1002ffb0]
add eax, eax
add eax, eax
mov ecx, 2
sub ecx, dword [esp + 0x1c]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x18]
imul edx, ebx
sub eax, dword [esp + 0x14]
lea ecx, [eax + eax - 6]
imul ecx, edi
add edx, ecx
mov ecx, dword [0x1002ffb0]
mov eax, 2
sub eax, ecx
lea esi, [edx + eax*2]
mov eax, dword [0x1002ffc0]
mov edx, dword [0x1002ffc0]
add eax, eax
add eax, eax
sub esi, eax
mov eax, edi
imul eax, edx
imul eax, ecx
imul eax, ebx
add eax, dword [0x1002ffac]
lea ebp, [edi + edx]
imul eax, ebx
sub eax, 2
imul eax, dword [0x1002ffb8]
add ebp, ebp
sub eax, ebp
add eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x38]
lea eax, [eax + ebp + 0x2000]
mov dword [esp + 0x38], eax
lea eax, [edx + edx*2]
mov ebp, edi
sub ebp, eax
add ebp, ecx
lea eax, [ebx + ebx - 2]
mov ebx, ebp
mov ebp, dword [0x1002ffb8]
imul eax, ebp
lea eax, [eax + ebx*2 + 0x1000]
mov ebx, dword [esp + 0x38]
or ebx, eax
mov eax, ecx
imul eax, ecx
imul eax, dword [0x1002ffac]
add eax, eax
sub eax, edi
sub eax, edi
imul eax, ecx
lea ecx, [edx + ebp*2]
mov edx, dword [esp + 0x10]
add ecx, ecx
push esi
sub eax, ecx
mov ecx, dword [esp + 0x24]
add eax, dword [edx + 0x34]
push ebx
push ecx
push eax
call dword [0x10032984]
mov edi, eax
test edi, edi
mov dword [esp + 0x14], edi
jne 0x10004287
mov edx, dword [0x1002ffb0]
mov edi, dword [0x1002ffbc]
mov esi, dword [0x1002ffb4]
lea ebx, [edx + edx]
mov dword [esp + 0x3c], ebx
add ebx, 0xfffffffe
imul ebx, dword [0x1002ffac]
lea ebp, [edi + edi]
sub ebx, ebp
imul ebx, edi
mov eax, dword [0x1002ffc0]
mov ecx, 4
sub ecx, edi
lea edi, [esi + 1]
imul edi, esi
mov ebp, 0x1000
sub ebp, edi
sub ebp, dword [0x1002ffb8]
mov edi, edx
imul edi, edx
lea ebx, [ebx + ebp*2]
mov ebp, edx
imul ebp, esi
lea edi, [edi + edi + 2]
imul edi, eax
add ebp, 1
imul ebp, eax
sub ebx, edi
mov edi, dword [0x1002ffac]
lea edx, [edx + edx*2]
sub edi, ebp
lea edi, [edi + edi*2]
sub edi, edx
mov edx, eax
imul edx, eax
add edi, 0x1000
or ebx, edi
mov edi, 3
sub edi, edx
sub ecx, eax
imul edi, esi
mov edx, 1
sub edx, eax
imul edx, dword [0x1002ffb8]
mov eax, dword [0x1002ffac]
add edx, dword [esp + 0x3c]
add eax, 3
imul eax, dword [0x1002ffbc]
add edx, edi
sub ecx, esi
add eax, edx
mov edx, dword [esp + 0x20]
push ecx
push ebx
lea eax, [edx + eax*2]
push eax
push 0
call dword [0x10032984]
test eax, eax
mov dword [esp + 0x14], eax
je 0x1000436a
mov edi, eax
mov ebx, dword [0x1002ffb0]
mov ebp, dword [0x1002ffb4]
mov eax, dword [0x1002ffbc]
mov edx, dword [0x1002ffc0]
mov esi, ebx
imul esi, ebp
imul esi, ebp
lea ecx, [eax + edx]
mov dword [esp + 0x30], ecx
mov ecx, eax
sub ecx, esi
mov esi, dword [0x1002ffac]
add ecx, esi
imul ecx, ebp
mov ebp, ebx
imul ebp, esi
add ecx, ebp
lea ebp, [ecx + ecx*2]
mov ecx, edx
imul ecx, esi
lea ecx, [ecx + ecx*2 - 3]
imul ecx, eax
lea ecx, [ecx + ebp + 0x40]
push ecx
mov ecx, eax
imul ecx, eax
imul ecx, edx
mov ebp, esi
imul ecx, esi
imul ebp, esi
imul ebp, dword [0x1002ffb4]
sub ecx, ebp
mov ebp, eax
imul eax, edx
imul edx, ebx
imul ebp, esi
sub ecx, ebp
add ecx, eax
add ecx, edx
sub ecx, dword [0x1002ffb8]
add ecx, 8
push ecx
call dword [0x100329cc]
push eax
call dword [0x1003298c]
mov edx, dword [esp + 0x30]
mov esi, eax
shl edx, 6
sub esi, edx
jne 0x10004374
mov eax, dword [0x1002ffb8]
mov edx, dword [0x1002ffb0]
mov ecx, dword [0x1002ffac]
sub edx, eax
sub edx, ecx
add edx, 2
imul edx, dword [0x1002ffbc]
add edx, eax
mov eax, dword [0x1002ffc0]
mov esi, eax
sub esi, ecx
lea ecx, [esi*4 - 4]
imul ecx, eax
lea edx, [ecx + edx*4 + 0x8000]
push edx
push 0
push edi
call dword [0x100329a4]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret
mov ebp, dword [0x1002ffbc]
mov eax, dword [0x1002ffac]
mov ebx, dword [0x1002ffc0]
mov ecx, ebp
imul ecx, eax
imul ecx, eax
mov edx, ebx
imul edx, dword [0x1002ffb4]
sub ecx, edx
mov edx, dword [esp + 0x10]
mov dword [esi + 4], edi
movzx edx, word [edx + 0x16]
mov edi, dword [0x1002ffb0]
add ecx, edi
lea ecx, [ecx + ecx + 0x2000]
and ecx, edx
mov edx, dword [esp + 0x30]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x1c], fcn.10003a00
mov dword [esi + 0x20], 0x10003a20
mov dword [esi + 0x24], 0x10003a40
mov dword [esi + 0x28], 0x10003ac0
mov dword [esi + 0x2c], 0x10003ae0
mov dword [esi + 0x34], 0
mov ecx, dword [esp + 0x44]
add edx, ecx
mov dword [esi + 0x3c], edx
mov edx, dword [0x1002ffb8]
imul edx, dword [0x1002ffb4]
lea ecx, [eax + eax*2]
mov dword [esp + 0x30], ecx
add edx, ebp
mov ecx, edi
imul ecx, eax
mov eax, dword [0x1002ffb8]
add ecx, edx
lea edx, [ecx*4 - 4]
imul edx, dword [0x1002ffb4]
lea ecx, [eax*4 + 4]
imul ecx, eax
sub edx, ecx
lea ecx, [edi*4]
sub edx, ecx
mov ecx, dword [esp + 0x10]
add edx, dword [ecx + 0x54]
lea ecx, [eax*4]
push edx
mov edx, ebp
imul edx, edi
add edx, dword [esp + 0x34]
lea ecx, [ecx + edi*8 + 4]
add edx, dword [0x1002ffb4]
imul ecx, eax
mov eax, dword [0x1002ffb4]
add eax, eax
add eax, eax
add eax, 4
imul eax, ebx
add edx, edx
add edx, edx
sub edx, ecx
sub edx, eax
add edx, dword [esp + 0x70]
push edx
call fcn.10002080
add esp, 8
test eax, eax
je 0x100047e7
mov ecx, dword [0x1002ffb8]
mov edx, ecx
imul edx, ebx
lea edx, [edx + edi + 2]
imul edx, ecx
mov ecx, edi
imul ecx, edi
sub ecx, edx
lea edx, [ebp*4]
sub ecx, edx
lea edx, [ebx + ebx*2]
sub ecx, edx
mov edx, dword [0x1002ffb4]
mov dword [esp + 0x3c], ecx
lea ecx, [edx*4]
mov edx, dword [esp + 0x3c]
add edx, ecx
lea ecx, [edx + edx + 4]
mov edx, ecx
push 0
lea ecx, [edi*4]
sub edx, ecx
mov ecx, dword [0x1002ffb4]
push edx
lea eax, [ebp + ebp*2]
mov edx, 0x400
sub edx, edi
sub edx, ecx
add edx, edx
add edx, edx
add ebp, ebp
add ebp, ebp
add ebp, ebp
sub edx, ebp
push edx
lea edx, [ebx + ebx*2]
sub edx, eax
add eax, 6
imul edx, ebx
imul eax, edi
sub edx, eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffffd
imul eax, ecx
mov ecx, dword [esp + 0x1c]
add edx, dword [ecx + 0x54]
add eax, edx
mov edx, dword [esp + 0x20]
push eax
push edx
call fcn.10003a00
mov edx, dword [esp + 0x24]
mov ecx, eax
mov eax, dword [0x1002ffc0]
imul eax, eax
sub eax, dword [0x1002ffbc]
mov dword [esp + 0x50], ecx
sub eax, dword [0x1002ffb0]
lea eax, [eax + eax*2]
add eax, dword [edx + 0x54]
push eax
mov eax, dword [esp + 0x80]
push eax
push ecx
call dword [0x100329d4]
mov ecx, dword [0x1002ffb0]
mov eax, dword [0x1002ffb4]
mov edx, ecx
imul edx, eax
mov edi, edx
sub edi, dword [0x1002ffb8]
mov dword [esp + 0x38], edx
mov edx, dword [0x1002ffbc]
imul edi, eax
sub edi, dword [0x1002ffac]
mov ebx, ecx
sub ebx, edx
sub edi, 0x2e9
add ebx, eax
imul edi, edx
imul ebx, ebx, 0x2e8
sub ebx, 0x2e9
imul ebx, dword [0x1002ffc0]
add edi, ebx
mov ebx, dword [esp + 0x88]
sub edi, eax
add edi, dword [ebx + 0x3c]
mov ebx, dword [esp + 0x5c]
add edi, ecx
add edi, ebx
mov ebx, dword [0x1002ffb8]
mov dword [esi], edi
mov dword [esp + 0x5c], edi
mov edi, dword [0x1002ffac]
imul ebx, edi
imul ebx, eax
mov ebp, edx
imul ebp, eax
sub ebp, ebx
mov ebx, edx
imul ebx, edx
sub ebp, ebx
mov ebx, dword [0x1002ffc0]
imul ebx, edi
sub ebp, ebx
mov ebx, dword [0x1002ffb8]
imul ebx, eax
sub ebp, ebx
mov ebx, ecx
imul ebx, edi
sub ebp, ebx
mov ebx, dword [0x1002ffc0]
add ebx, ebx
sub ebp, ebx
mov ebx, dword [esp + 0x5c]
sub ebp, ecx
add ebp, dword [esp + 0x38]
add ebp, dword [0x1002ffb8]
add ebp, dword [esp + 0x34]
mov dword [ebx + 0x34], ebp
mov ebp, dword [0x1002ffb8]
lea ebx, [ecx + edi - 3]
imul ebx, dword [0x1002ffc0]
add ebp, ecx
add ebp, ebp
sub ebx, ebp
lea ebp, [edx + 2]
imul ebp, eax
add ebx, ebp
shl ebx, 6
add ebx, esi
push ebx
mov ebx, dword [esp + 0x34]
push ebx
mov ebx, dword [0x1002ffc0]
lea edi, [edi + ebx*2 + 2]
imul edi, ebx
lea ebx, [edx*4]
sub ebx, edx
neg ebx
mov edx, ebx
sub edx, edi
sub edx, eax
mov eax, dword [0x1002ffb8]
add edx, ecx
lea ecx, [edx + edx*2]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x90]
add edx, edx
sub ecx, edx
add ecx, dword [esp + 0x94]
push ecx
push eax
call fcn.100020f0
add esp, 0x30
test eax, eax
je 0x100047e7
mov edi, dword [0x1002ffb0]
mov ebp, dword [0x1002ffbc]
mov ecx, edi
imul ecx, edi
mov ebx, dword [0x1002ffb4]
imul ecx, edi
mov edx, dword [0x1002ffb8]
imul ecx, edi
imul ecx, ebx
imul edx, ebp
mov eax, dword [esi]
add ecx, edx
mov edx, dword [0x1002ffc0]
sub ecx, ebp
sub ecx, edx
add ecx, 1
imul ecx, dword [0x1002ffac]
add ecx, dword [eax + 0x34]
mov eax, dword [esp + 0x10]
lea ecx, [ecx + ebp*2]
sub ecx, dword [eax + 0x34]
add ecx, ebx
je 0x10004752
mov eax, edi
imul eax, ebx
add eax, 1
imul eax, ebp
add edx, edx
sub eax, edx
sub eax, ebx
add eax, dword [0x1002ffac]
lea ecx, [ecx + eax*2]
add ecx, eax
mov eax, dword [0x1002ffc0]
mov edx, eax
imul edx, ebx
add edx, 1
imul edx, ebp
add edx, eax
lea eax, [edx + edi*2]
add eax, ebx
push ecx
lea eax, [eax + eax*2]
shl eax, 6
mov ecx, esi
sub ecx, eax
push ecx
call fcn.10003150
mov edx, eax
mov eax, ebp
imul eax, dword [0x1002ffac]
sub eax, edi
lea eax, [eax + eax*2]
add esp, 8
add edx, eax
mov dword [esi + 0x18], edx
mov edx, dword [0x1002ffc0]
jmp 0x10004759
mov dword [esi + 0x18], 1
lea ecx, [edi + ebp]
add ecx, ebx
add ebp, 1
imul ecx, edx
imul ebp, dword [0x1002ffac]
add ebx, 2
imul ebx, edi
sub ebp, ecx
add ebp, dword [0x1002ffb8]
add ebx, ebp
shl ebx, 7
add ebx, esi
push ebx
call fcn.10003500
add esp, 4
test eax, eax
je 0x100047e7
mov edx, dword [0x1002ffbc]
imul edx, dword [0x1002ffc0]
sub edx, dword [0x1002ffb8]
shl edx, 6
add edx, esi
push edx
call fcn.10002aa0
add esp, 4
test eax, eax
je 0x100047e7
mov eax, dword [0x1002ffb4]
mov ecx, dword [0x1002ffbc]
mov edx, dword [0x1002ffb0]
imul ecx, eax
imul ecx, eax
neg edx
add edx, edx
sub edx, ecx
add edx, dword [0x1002ffac]
shl edx, 8
add edx, esi
push edx
call fcn.10003080
add esp, 4
test eax, eax
jne 0x100047f6
call fcn.10004f50
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret
mov eax, dword [esi]
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x10004862
cmp dword [esi + 0x14], 0
je 0x10004849
mov edx, dword [0x1002ffb4]
mov eax, dword [0x1002ffac]
lea edi, [edx + 5]
imul edi, dword [0x1002ffc0]
add eax, eax
sub eax, edi
mov edi, dword [0x1002ffbc]
imul edi, edx
sub eax, edi
lea ecx, [ecx + eax*2]
pop edi
add ecx, eax
add ecx, dword [esp + 0x10]
mov dword [esi + 0x10], 1
mov eax, esi
pop esi
pop ebp
mov dword [0x100329dc], ecx
pop ebx
add esp, 0x54
ret
mov edx, dword [0x1002ffc0]
add ecx, edx
add ecx, dword [esp + 0x14]
pop edi
mov dword [esi + 0x38], ecx
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
pop edi
mov dword [esi + 0x38], 0
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret