Function at 0x10001037
Capabilities:
Resolve function by parsing pe exports

Disassembly:
jmp 0x100032f0
sub esp, 0x4c
mov ecx, dword [0x10074024]
mov edx, dword [0x10074010]
push ebx
push ebp
push esi
mov esi, dword [0x1007401c]
push edi
lea edi, [edx + edx*2]
lea eax, [ecx + esi]
mov ebp, edi
mov ebx, dword [0x10074020]
mov dword [esp + 0x18], 0
lea eax, [eax + eax*2]
sub ebp, eax
lea eax, [ecx + ecx*2]
mov edi, eax
mov eax, 3
sub eax, edi
mov edi, dword [0x10074014]
imul ebp, ebx
imul eax, edi
add ebp, eax
lea eax, [edi + edx*2 + 1]
imul eax, dword [0x10074018]
lea eax, [eax + eax*2]
add ebp, eax
lea eax, [esi + esi*2]
sub ebp, eax
lea eax, [ebx*4]
mov esi, 4
add ebp, 0x40
sub esi, eax
mov eax, dword [0x10074018]
imul esi, ecx
inc edx
push ebp
mov ecx, edx
shl ecx, 0x1e
sub ecx, edx
mov edx, dword [esp + 0x68]
add ecx, eax
add edx, esi
imul ecx, eax
add ecx, edi
lea eax, [edx + ecx*4]
push eax
call fcn.100045d0
add esp, 8
test eax, eax
jne 0x1000339a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov edx, dword [0x10074018]
mov eax, dword [0x1007401c]
mov edi, dword [0x10074010]
mov ebp, 5
lea ecx, [edx + edx*4]
mov esi, 5
sub ebp, ecx
lea ecx, [eax + eax*4]
sub esi, ecx
imul ebp, edi
imul esi, eax
add ebp, esi
mov esi, dword [0x10074024]
mov ecx, esi
mov ebx, dword [0x10074020]
imul ecx, eax
sub ecx, ebx
sub ecx, 2
imul ecx, ebx
lea ecx, [ecx + ecx*4]
add ebp, ecx
mov ecx, dword [0x10074014]
lea ebx, [ecx + ecx*4 - 5]
imul ebx, ecx
sub ebx, 5
imul ebx, esi
lea ecx, [ebx + ebp + 0x5a4d]
mov ebx, dword [esp + 0x60]
xor ebp, ebp
mov bp, word [ebx]
cmp ebp, ecx
je 0x10003416
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x4c
ret
mov ebp, dword [0x10074020]
mov ebx, dword [ebx + 0x3c]
lea ecx, [ebp + 1]
imul ecx, ebp
add ecx, esi
lea ecx, [ecx + ecx*2]
mov ebp, ecx
lea ecx, [edx + eax]
lea ecx, [ecx + ecx*2]
sub ecx, ebp
lea ecx, [ecx + ebx + 0xf8]
push ecx
mov ecx, edx
imul ecx, eax
lea ecx, [ecx + ecx*2]
sub ecx, eax
sub ecx, eax
sub ecx, eax
add ecx, esi
add ecx, esi
add ecx, esi
add ecx, edi
add ecx, edi
add ecx, edi
mov edi, dword [esp + 0x68]
add ecx, edx
add ecx, edx
add ecx, edx
add ecx, edi
push ecx
call fcn.100045d0
add esp, 8
test eax, eax
jne 0x10003477
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov ecx, dword [0x10074024]
mov edx, dword [0x10074014]
mov eax, ecx
mov edi, dword [0x10074018]
imul eax, edx
imul eax, edx
mov esi, dword [0x10074020]
mov ebx, 2
shl eax, 1
sub ebx, eax
lea eax, [edi + 1]
imul eax, esi
imul ebx, edx
add eax, dword [0x1007401c]
lea eax, [ebx + eax*2]
mov ebx, dword [esp + 0x60]
mov ebp, dword [ebx + 0x3c]
add eax, ebp
lea ebp, [edi + edi*2]
add eax, ebx
lea ebx, [edx + edx*2]
mov dword [esp + 0x10], eax
mov eax, dword [0x10074010]
imul eax, eax
lea eax, [eax + eax*2]
sub ebx, eax
lea eax, [esi + esi*2]
shl eax, 1
sub eax, ebp
add ebx, 3
sub eax, 9
imul ebx, edx
imul eax, ecx
add ebx, eax
mov eax, esi
imul eax, edi
mov ebp, 3
lea eax, [eax + eax*2]
sub ebp, eax
mov eax, dword [0x10074010]
imul ebp, esi
lea eax, [edi + eax*2]
add ebx, ebp
lea eax, [eax + eax*2]
lea eax, [ebx + eax + 0x4550]
mov ebx, dword [esp + 0x10]
cmp dword [ebx], eax
je 0x10003521
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x4c
ret
xor ebp, ebp
lea eax, [edx + edx*2 + 0x14c]
mov bp, word [ebx + 4]
cmp ebp, eax
je 0x1000353c
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x4c
ret
lea ebp, [edi - 1]
mov eax, esi
imul ebp, ecx
imul eax, dword [0x1007401c]
lea ebp, [esi + ebp - 2]
mov ebx, dword [ebx + 0x38]
imul ebp, edi
sub ebp, dword [0x1007401c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ebx
add ebp, eax
add ebp, ecx
add ebp, esi
mov eax, ebp
mov ebp, dword [0x10074010]
lea eax, [eax + ebp + 1]
test ebx, eax
je 0x10003583
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x4c
ret
mov ebx, ecx
mov eax, edi
imul ebx, esi
imul eax, edx
mov dword [esp + 0x1c], ebx
mov ebx, esi
imul ebx, edx
imul ebx, edx
dec ebx
mov dword [esp + 0x34], eax
imul ebx, ecx
inc ebx
imul ebx, ebp
inc eax
imul eax, ebp
add eax, edi
xor ebp, ebp
imul eax, edx
sub ebx, eax
mov eax, dword [esp + 0x1c]
inc eax
imul eax, esi
sub ebx, eax
lea eax, [esi + 2]
imul eax, edi
add ebx, eax
mov eax, dword [0x1007401c]
lea eax, [ebx + eax*2]
lea ebx, [eax + eax*4]
mov eax, dword [esp + 0x10]
shl ebx, 5
mov bp, word [eax + 0x14]
add eax, ebx
xor ebx, ebx
lea eax, [eax + ebp + 0x18]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov eax, ecx
imul eax, edi
imul eax, edx
dec eax
mov bx, word [ebp + 6]
imul eax, esi
mov ebp, dword [0x10074010]
add ebp, eax
lea eax, [ebx + ebp]
test eax, eax
jbe 0x1000374c
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x20], eax
add ebx, 0xc
mov dword [esp + 0x14], ebx
mov ebx, dword [0x1007401c]
mov eax, dword [esp + 0x14]
mov ebp, dword [eax + 4]
test ebp, ebp
jne 0x10003684
mov eax, edi
imul ebx, edx
imul eax, edi
add eax, ebx
mov ebx, dword [0x10074010]
imul eax, ebx
mov ebp, eax
shl ebp, 0x1e
sub ebp, eax
lea eax, [esi + 2]
add ebp, ecx
imul eax, esi
imul ebp, edi
inc ebx
mov dword [esp + 0x28], ebp
imul ebx, ecx
mov ebp, dword [0x1007401c]
mov dword [esp + 0x24], eax
add ebp, ebx
add eax, ebp
mov ebx, eax
shl ebx, 0x1e
sub ebx, eax
mov eax, dword [esp + 0x28]
add eax, ebx
mov ebx, dword [esp + 0x2c]
lea eax, [ebx + eax*4]
mov ebx, dword [esp + 0x14]
add eax, dword [ebx]
jmp 0x100036d7
mov eax, edx
mov ebp, dword [esp + 0x30]
imul eax, edx
inc eax
imul eax, dword [0x10074010]
lea eax, [eax + ebp + 2]
imul eax, ecx
lea eax, [eax + eax*2]
mov ebp, eax
mov eax, edi
imul eax, ebx
lea eax, [eax + eax*2]
sub eax, ebp
mov ebp, dword [esp + 0x14]
sub eax, ebx
sub eax, ebx
sub eax, ebx
mov ebx, dword [ebp + 4]
add eax, ebx
mov ebx, dword [0x10074010]
add eax, ebx
add eax, ebx
add eax, ebx
mov ebx, dword [ebp]
add eax, edi
add eax, edi
add eax, edi
add eax, edx
add eax, edx
add eax, edx
add eax, ebx
mov ebp, dword [esp + 0x18]
lea ebx, [ecx + ecx*2]
add ebx, ebp
cmp eax, ebx
jbe 0x1000372a
mov ebx, dword [esp + 0x1c]
mov ebp, 1
imul ebx, esi
inc ebx
imul ebx, edi
sub ebp, ebx
mov ebx, dword [0x1007401c]
imul ebp, esi
neg ebx
shl ebx, 0x1f
sub ebx, dword [0x1007401c]
add ebx, edx
lea ebx, [ebp + ebx*2]
mov ebp, dword [0x10074010]
add ebp, 0xfffffffe
imul ebp, ecx
add ebx, ebp
mov ebp, dword [esp + 0x34]
sub ebx, ebp
add ebx, eax
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ebx, dword [0x1007401c]
add ebp, 0x28
dec eax
mov dword [esp + 0x14], ebp
mov dword [esp + 0x20], eax
jne 0x10003622
jmp 0x10003752
mov ebx, dword [0x1007401c]
lea edi, [ecx + edx]
mov eax, 1
imul edi, dword [0x10074010]
sub eax, ecx
imul edi, ebx
sub eax, esi
imul eax, ecx
sub eax, edi
mov edi, esi
imul edi, esi
dec edi
imul edi, esi
lea esi, [edx + ecx*2]
add eax, edi
add ecx, esi
shl ecx, 1
sub eax, ecx
add eax, edx
lea ecx, [eax + eax*8]
lea edx, [esp + ecx*4 + 0x38]
push edx
call dword [0x10077488]
mov ecx, dword [0x10074020]
mov eax, dword [0x10074014]
mov esi, ecx
mov edx, dword [0x10074010]
imul esi, eax
lea edi, [edx + 1]
lea esi, [esi + edx + 1]
imul edi, edx
imul esi, eax
add esi, 2
mov dword [esp + 0x2c], edi
mov ebx, esi
shl ebx, 0x1e
sub ebx, esi
mov esi, dword [0x1007401c]
add ebx, esi
imul ebx, esi
mov esi, dword [0x10074024]
add edi, ebx
mov ebp, esi
shl ebp, 0x1d
sub ebp, esi
lea ebx, [edi + ebp*2]
mov edi, dword [0x10074018]
mov ebp, edi
add ebx, eax
imul ebp, edi
lea edi, [ebp*4 + 4]
mov ebp, dword [esp + 0x3c]
imul edi, ecx
add ebp, edi
lea edi, [ebp + ebx*4]
mov ebx, esi
mov ebp, dword [esp + 0x10]
imul ebx, edx
mov ebp, dword [ebp + 0x50]
mov dword [esp + 0x34], edi
sub ebp, ebx
mov ebx, ecx
imul ebx, edx
sub ebp, ebx
lea edi, [ecx + 2]
add ebp, ecx
imul edi, esi
mov ebx, ebp
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x28], edi
lea ebx, [ebx + ebp - 1]
dec ebp
not ebp
sub ebp, edi
lea edi, [esi + ecx]
sub ebp, edx
and ebx, ebp
shl edi, 1
sub ebx, edi
mov edi, edx
mov dword [esp + 0x1c], ebx
mov ebx, dword [0x10074018]
lea ebp, [ecx + 1]
imul edi, ebx
imul ebp, eax
imul edi, dword [0x1007401c]
sub edi, ebp
mov ebp, edx
imul ebp, dword [0x1007401c]
lea edi, [edi + esi - 2]
imul ebp, eax
imul edi, ecx
add edi, ebp
lea ebp, [esi + ebx]
lea ebp, [ebp + ebp*2]
add edi, ebp
mov ebp, dword [0x1007401c]
sub edi, ebp
sub edi, eax
add edi, edx
add edi, dword [esp + 0x3c]
mov dword [esp + 0x34], edi
lea edi, [ebp + ebp*2]
lea ebp, [eax - 2]
mov dword [esp + 0x20], edi
imul ebp, eax
mov edi, dword [esp + 0x2c]
add edi, ebp
lea edi, [edi + ebx*2]
lea ebx, [ebx + ebx*2]
lea edi, [edi + esi + 0x55555555]
lea ebp, [edi + edi*2]
lea edi, [ecx + ecx*2 + 3]
sub ebx, edi
mov edi, dword [esp + 0x20]
imul ebx, ecx
add ebp, ebx
mov ebx, dword [esp + 0x18]
sub ebp, edi
mov edi, dword [esp + 0x34]
add ebp, edi
add ebp, ebx
mov ebx, dword [esp + 0x28]
dec edi
not edi
sub edi, ebx
sub edi, edx
and ebp, edi
mov edi, dword [esp + 0x1c]
cmp edi, ebp
je 0x100038ef
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x4c
ret
mov edi, dword [esp + 0x7c]
mov ebx, dword [0x10074018]
imul ebx, dword [0x1007401c]
push edi
mov edi, esi
imul edi, eax
add edi, ebx
mov ebp, dword [esp + 0x24]
mov ebx, 6
lea edi, [edi + edi*2]
sub ebx, edi
lea edi, [ecx + eax + 2]
imul ebx, edx
lea edi, [edi + edi*2]
sub edi, ebp
imul edi, ecx
add ebx, edi
mov edi, dword [0x1007401c]
lea edi, [esi + edi*2]
lea edi, [edi + edi*2]
add ebx, edi
mov edi, dword [0x10074018]
add edi, eax
lea edi, [edi + edi*2]
sub ebx, edi
mov edi, esi
imul edi, ecx
imul edi, eax
add ebx, 4
inc edi
imul edi, edx
push ebx
lea ebx, [eax + eax*4]
lea edi, [edi + edi*4]
sub ebx, edi
lea edi, [eax + 2]
imul edi, esi
mov ebp, edi
add ebx, 0x1000
neg ebp
shl ebp, 0x1f
sub ebp, edi
mov edi, dword [0x1007401c]
add ebp, edi
lea ebp, [ebp + ebp + 0x2000]
or ebx, ebp
mov ebp, edx
push ebx
mov ebx, dword [esp + 0x28]
push ebx
mov ebx, 1
sub ebx, ecx
imul ebp, eax
imul ebx, dword [0x10074018]
sub ebx, ebp
add edx, 3
dec ebx
imul edx, eax
imul ebx, ecx
mov ecx, dword [0x10074018]
lea eax, [edi + edi - 2]
imul eax, edi
lea ebp, [ecx + 1]
imul ebp, esi
sub ebx, ebp
add ebx, edx
sub ebx, ecx
lea ecx, [eax + ebx*2]
mov ebx, dword [esp + 0x20]
add ecx, dword [ebx + 0x34]
push ecx
call dword [esp + 0x7c]
mov edi, eax
add esp, 0x14
test edi, edi
mov dword [esp + 0x14], edi
jne 0x10003ab4
mov edx, dword [esp + 0x7c]
mov esi, dword [0x10074024]
mov eax, dword [0x10074018]
push edx
mov edx, dword [0x10074020]
mov ebx, esi
mov edi, dword [0x10074014]
imul ebx, edx
mov ecx, eax
mov ebp, edi
imul ecx, eax
add ebp, ebx
mov ebx, dword [0x1007401c]
add ecx, ebp
lea ebp, [edx + edx*2 + 6]
lea ecx, [ecx + ecx*2 + 4]
push ecx
mov ecx, dword [0x10074010]
imul ecx, ebx
add ecx, esi
lea ecx, [ecx + ecx*2]
sub ebp, ecx
mov ecx, dword [0x10074010]
imul ebp, edi
add ecx, esi
lea ecx, [ecx + ecx*2]
add ebp, ecx
lea ecx, [ebx + ebx*2]
or ebx, 0xffffffff
sub ebp, ecx
lea ecx, [eax + edi]
sub ebx, edx
imul ecx, eax
imul ebx, esi
sub ebx, ecx
mov ecx, dword [0x10074010]
add ecx, ecx
add ebp, 0x1000
sub ebx, ecx
mov ecx, dword [0x1007401c]
sub ebx, ecx
mov ecx, dword [0x10074010]
sub ebx, edi
add ebx, 0x2000
or ebp, ebx
mov ebx, edx
imul ebx, ecx
inc ebx
push ebp
imul ebx, esi
add ebx, eax
imul ebx, ecx
inc edx
add eax, ebx
imul edx, edi
add edx, eax
mov eax, dword [esp + 0x28]
lea ecx, [eax + edx*4]
push ecx
push 0
call dword [esp + 0x7c]
mov edi, eax
add esp, 0x14
test edi, edi
mov dword [esp + 0x14], edi
jne 0x10003ab0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov ebx, dword [esp + 0x10]
mov edx, dword [0x10074018]
mov eax, dword [0x10074024]
inc edx
mov ecx, eax
imul edx, dword [0x10074020]
sub ecx, edx
lea edx, [eax + eax*2]
imul eax, dword [0x1007401c]
add ecx, 0x40
push ecx
mov ecx, dword [0x10074010]
lea eax, [eax + eax*2]
lea esi, [ecx + ecx*2]
sub esi, edx
imul esi, ecx
lea ecx, [esi + eax + 8]
push ecx
call dword [0x10077490]
push eax
call dword [0x100774ac]
mov esi, eax
mov eax, dword [0x10074014]
mov edx, eax
mov ecx, dword [0x10074020]
imul edx, eax
mov ebp, dword [0x10074010]
sub edx, ecx
add edx, ebp
mov ebp, dword [0x10074024]
imul edx, eax
add ebp, ebp
sub edx, ebp
sub edx, ecx
shl edx, 7
add esi, edx
jne 0x10003bb2
mov edx, dword [0x10074010]
mov ebp, dword [0x10074018]
imul edx, edx
mov ebx, dword [0x1007401c]
mov esi, ebp
imul edx, ebx
imul esi, ebx
mov ebx, ecx
add edx, esi
imul ebx, ebp
mov ebp, ecx
lea edx, [edx + edx*2]
imul ebp, eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x60], ebp
push eax
lea eax, [ecx + ecx*2]
mov ebp, 9
sub ebp, eax
mov eax, dword [esp + 0x64]
imul ebp, dword [0x10074024]
add eax, ebx
mov ebx, dword [0x10074010]
add eax, ecx
mov ecx, dword [0x10074018]
add eax, ebx
add eax, ecx
lea ecx, [eax + eax*2]
add ebp, ecx
sub ebp, edx
add ebp, 0x8000
push ebp
push 0
push edi
call dword [esp + 0x7c]
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov dword [esi + 4], edi
mov ecx, dword [0x10074018]
mov eax, dword [0x10074024]
mov edx, dword [0x10074014]
sub ecx, eax
dec ecx
imul ecx, eax
lea eax, [edx + edx + 1]
mov edx, dword [0x1007401c]
imul eax, dword [0x10074020]
sub ecx, eax
mov eax, dword [esp + 0x68]
sub ecx, edx
xor edx, edx
mov dx, word [ebx + 0x16]
add ecx, 0x2000
and ecx, edx
mov edx, dword [esp + 0x70]
neg ecx
sbb ecx, ecx
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x74]
mov dword [esi + 0x24], edx
mov edx, dword [esp + 0x7c]
mov dword [esi + 0x28], eax
neg ecx
mov dword [esi + 0x14], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esi + 0x20], ecx
mov ecx, dword [esp + 0x78]
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x34], edx
mov edi, dword [0x10074020]
mov edx, dword [0x10074010]
imul edi, edx
mov eax, dword [0x10074018]
mov ecx, dword [0x10074014]
mov ebp, edx
inc edi
imul ebp, eax
imul edi, ecx
imul eax, dword [0x1007401c]
lea ebp, [ecx + ebp - 1]
sub edi, 4
imul ebp, dword [0x10074020]
imul edi, dword [0x10074024]
add ebp, edx
lea ecx, [ecx + ecx*2]
add ebp, edi
mov edi, dword [esp + 0x3c]
add eax, ebp
lea eax, [eax + eax*2]
sub eax, ecx
add eax, edi
mov dword [esi + 0x3c], eax
mov eax, dword [0x10074020]
mov ecx, dword [0x10074014]
mov edx, dword [0x1007401c]
imul eax, ecx
add eax, edx
mov ebp, dword [0x10074024]
mov edx, eax
shl edx, 0x1e
sub edx, eax
mov eax, dword [0x10074010]
mov edi, eax
shl edi, 0x1d
sub edi, eax
add edi, ebp
mov ebp, dword [0x10074018]
add ebp, edx
lea edx, [ebp + edi*2]
mov edi, dword [ebx + 0x54]
mov ebx, dword [esp + 0x64]
lea edx, [edi + edx*4]
push edx
lea edx, [ecx - 2]
imul edx, dword [0x10074018]
sub edx, eax
add edx, ecx
add edx, ebx
push edx
call fcn.100045d0
add esp, 8
test eax, eax
je 0x1000410a
mov edx, dword [0x10074020]
mov ecx, dword [esp + 0x7c]
mov ebx, dword [0x10074024]
push ecx
lea ecx, [edx + 1]
mov ebp, ebx
imul ecx, dword [0x1007401c]
imul ebp, ebx
mov edi, dword [0x10074010]
mov eax, edx
imul eax, edi
add ecx, ebp
mov ebx, dword [0x10074018]
mov ebp, ecx
neg ebp
shl ebp, 0x1f
sub ebp, ecx
mov ecx, dword [0x10074014]
lea ecx, [eax + ecx + 2]
imul eax, edi
imul ecx, ebx
imul eax, edi
add ebp, ecx
lea ecx, [ebp + ebp + 4]
mov ebp, dword [0x10074024]
push ecx
mov ecx, dword [0x10074014]
imul eax, ecx
sub ebp, eax
lea eax, [ebx + ebp - 1]
mov ebp, 2
sub ebp, dword [0x1007401c]
imul eax, ecx
imul ebp, edx
add eax, ebp
mov ebp, dword [0x10074024]
add ebp, ebp
sub eax, ebp
mov ebp, dword [0x1007401c]
sub eax, ebx
lea eax, [eax + ebp + 0x1000]
lea ebp, [edi + edi*2]
push eax
mov eax, edx
imul eax, edx
add edi, ebx
add edi, ecx
lea eax, [eax + ecx + 1]
imul edi, ecx
lea eax, [eax + eax*2]
shl ebp, 1
sub ebp, eax
mov eax, dword [0x10074024]
imul ebp, edx
lea ebx, [edi + ebx*2]
mov edi, dword [esp + 0x1c]
lea edx, [eax + eax*8]
mov eax, dword [0x1007401c]
lea ecx, [ebx + ebx*2]
add ebp, ecx
mov ecx, dword [esp + 0x20]
sub ebp, edx
lea eax, [eax + eax*2]
sub ebp, eax
mov eax, dword [edi + 0x54]
add ebp, eax
push ebp
push ecx
call dword [esp + 0x7c]
mov ebx, eax
mov eax, dword [0x10074024]
imul eax, dword [0x10074010]
mov ecx, dword [esp + 0x74]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x54]
sub eax, edx
push eax
push ecx
push ebx
call dword [0x100774b8]
mov edx, dword [0x10074010]
imul edx, dword [0x1007401c]
mov eax, dword [0x10074014]
mov ebp, 0xfffffffa
sub ebp, edx
lea ecx, [eax + eax*2]
imul ebp, dword [0x10074024]
shl ecx, 3
sub ecx, eax
lea edx, [eax + ecx*4]
mov ecx, dword [0x10074020]
lea edx, [ecx + edx*2 + 2]
imul edx, eax
mov eax, dword [0x10074010]
sub ebp, edx
lea edx, [ebp + eax*2]
mov eax, dword [0x1007401c]
sub edx, eax
lea eax, [ecx + ecx*2]
shl eax, 3
sub eax, ecx
lea ecx, [ecx + eax*4]
mov eax, 4
shl ecx, 3
sub eax, ecx
imul eax, dword [0x10074018]
lea ecx, [eax + edx*4]
mov edx, dword [esp + 0x80]
add ecx, dword [edx + 0x3c]
add ebx, ecx
mov dword [esi], ebx
mov eax, dword [0x10074018]
inc eax
imul eax, dword [0x10074024]
lea ecx, [eax + eax*2]
mov eax, dword [0x10074020]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x34]
sub ecx, edx
add ecx, eax
mov dword [ebx + 0x34], ecx
mov ecx, dword [0x10074020]
mov eax, dword [0x10074010]
mov edx, ecx
imul edx, eax
imul edx, eax
mov ebx, 1
mov ebp, eax
sub ebx, edx
mov edx, dword [0x10074018]
imul ebx, ecx
inc edx
add ebp, ebx
imul edx, dword [0x1007401c]
add edx, ebp
mov ebp, eax
shl edx, 7
add edx, esi
push edx
mov edx, dword [0x1007401c]
imul ebp, edx
lea ebx, [edx + 1]
mov edx, dword [0x10074014]
imul ebx, dword [0x10074018]
imul eax, edx
lea ebx, [ebx + ebp + 0x7fffffff]
mov ebp, edx
imul ebx, dword [0x10074024]
neg ebp
shl ebp, 0x1f
sub ebp, edx
mov edx, 2
shl eax, 1
sub edx, eax
mov eax, dword [esp + 0x88]
imul edx, ecx
add ebx, ebp
add eax, edx
push edi
lea eax, [eax + ebx*2]
push eax
mov ecx, dword [esp + 0x8c]
push ecx
call fcn.10004650
add esp, 0x30
test eax, eax
je 0x1000410a
mov eax, dword [0x10074024]
mov ecx, dword [0x10074020]
mov ebx, dword [0x1007401c]
mov ebp, dword [0x10074010]
lea edx, [eax + ecx + 2]
imul edx, ebx
inc ebp
imul ebp, eax
mov eax, dword [0x10074014]
add edx, ebp
shl edx, 2
mov ebp, edx
lea edx, [eax*4 - 4]
imul edx, ecx
sub edx, ebp
mov ebp, dword [esi]
add edx, dword [ebp + 0x34]
mov ebp, dword [edi + 0x34]
sub edx, ebp
je 0x10004023
lea ebp, [ebx + eax]
mov edi, dword [0x10074024]
imul ebp, ecx
lea edi, [edi + edi*2]
sub ebp, edi
mov edi, dword [0x10074010]
sub ebp, edi
sub ebp, edi
mov edi, dword [0x10074018]
sub ebp, edi
add ebp, ecx
add ebp, ebx
add ebp, eax
add ebp, eax
add ebp, edx
mov edx, dword [0x10074010]
sub edx, ebx
push ebp
sub edx, eax
lea ebp, [ecx + edi - 2]
imul ebp, ebx
imul ecx, edi
lea edx, [edx + edi - 3]
mov edi, 2
imul edx, dword [0x10074024]
add edx, ebp
sub edx, ecx
mov ecx, dword [0x10074010]
dec ecx
imul ecx, eax
add edx, ecx
lea ecx, [eax + eax]
sub edi, ecx
imul edi, eax
lea edx, [edi + edx*2]
shl edx, 7
add edx, esi
push edx
call fcn.10005c80
mov ecx, dword [0x10074020]
mov edx, dword [0x1007401c]
mov edi, eax
mov eax, dword [0x10074024]
mov ebx, eax
imul eax, ecx
sub ebx, ecx
mov ecx, dword [0x10074010]
add esp, 8
lea ebx, [ebx + edx - 1]
imul ebx, edx
sub ebx, eax
mov eax, dword [0x10074014]
add eax, ecx
add edi, ebx
lea edx, [eax + eax*2]
add edi, edx
mov dword [esi + 0x18], edi
jmp 0x1000402a
mov dword [esi + 0x18], 1
mov eax, dword [0x10074024]
mov ecx, dword [0x1007401c]
imul eax, dword [0x10074014]
mov edx, dword [0x10074020]
add ecx, eax
lea eax, [ecx + edx*2]
lea eax, [eax + eax*2]
shl eax, 6
add eax, esi
push eax
call fcn.100061f0
add esp, 4
test eax, eax
je 0x1000410a
mov edx, dword [0x10074010]
mov eax, dword [0x10074018]
mov ebp, eax
lea ecx, [edx + edx]
mov edi, ecx
mov ecx, dword [0x10074014]
sub edi, ecx
lea ebx, [edi + eax - 1]
mov edi, dword [0x10074024]
imul ebx, dword [0x10074020]
sub ebp, edi
add edi, edi
add ebp, 2
sub edi, ecx
imul ebp, eax
add eax, 2
add ebx, ebp
imul eax, dword [0x1007401c]
lea edi, [ebx + edi*2]
sub edi, eax
add edi, edx
add edi, ecx
shl edi, 8
add edi, esi
push edi
call fcn.10004cd0
add esp, 4
test eax, eax
je 0x1000410a
mov eax, dword [0x10074018]
mov ecx, dword [0x1007401c]
mov edx, eax
mov edi, dword [0x10074010]
imul edx, ecx
lea edi, [edx + edi + 1]
mov edx, dword [0x10074020]
imul edi, edx
add edx, eax
imul edx, dword [0x10074014]
sub edi, edx
dec ecx
imul ecx, dword [0x10074024]
add eax, edi
add ecx, eax
shl ecx, 8
add ecx, esi
push ecx
call fcn.10005b20
add esp, 4
test eax, eax
jne 0x1000411d
push esi
call fcn.10001032
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
test edx, edx
je 0x100041e8
mov eax, dword [esi + 0x14]
test eax, eax
je 0x10004195
mov edi, dword [0x10074018]
mov ecx, dword [0x10074014]
mov ebp, edi
mov ebx, dword [0x10074020]
imul ebp, ecx
mov eax, ebx
sub eax, ebp
mov ebp, dword [0x10074024]
imul eax, ebx
mov ebx, dword [0x1007401c]
add ebp, ebx
lea ebx, [ecx + 1]
imul ebx, edi
mov edi, dword [0x10074010]
imul edi, ecx
shl ebp, 1
sub eax, ebp
sub eax, ebx
add eax, edi
pop edi
lea ecx, [edx + eax*2]
add eax, ecx
mov ecx, dword [esp + 0x10]
add eax, ecx
mov dword [0x100774d4], eax
mov dword [esi + 0x10], 1
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov eax, dword [0x10074018]
mov ecx, dword [0x1007401c]
mov edi, dword [0x10074014]
mov ebx, eax
sub ebx, ecx
sub ebx, 4
lea ebp, [ecx + edi + 1]
imul ebx, dword [0x10074024]
imul ebp, eax
mov eax, dword [0x10074010]
sub ebx, ebp
inc eax
add ecx, ebx
imul eax, dword [0x10074020]
add eax, ecx
add eax, edi
pop edi
lea ecx, [edx + eax*2]
add eax, ecx
mov ecx, dword [esp + 0x10]
add eax, ecx
mov dword [esi + 0x38], eax
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov dword [esi + 0x38], 0
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret