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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x224
mov eax, dword [0x1006a180]
xor eax, esp
mov dword [esp + 0x220], eax
mov ecx, dword [ebp + 0x14]
push ebx
push esi
mov esi, dword [ebp + 8]
mov bl, 1
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0xfc], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x100], ecx
push edi
lea edi, [esp + 0x100]
mov dword [esp + 0x54], esi
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x10c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x108], ecx
mov dword [esp + 0x28], edi
mov byte [esp + 0x1b], bl
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x110], ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x114], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], ecx
nop dword [eax + eax]
mov eax, dword [esi]
lea edx, [esp + 0x200]
mov ecx, dword [esi + 4]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
cmp edi, edx
jae 0x10029862
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x60]
push eax
push edi
call fcn.10028830
add esp, 0x10
test al, al
jne 0x1002985a
cmp byte [esi + 0x90], al
je 0x10029849
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esi], eax
mov dword [esi + 4], ecx
push edi
call fcn.10028b20
add esp, 4
add edi, 0x18
jmp 0x1002a4ef
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
test bl, bl
je 0x10029b66
cmp byte [esi + 0x90], 0
mov byte [esp + 0x1b], 0
je 0x1002988c
push 0
push 0
push ecx
push eax
push esi
call fcn.1002a7d0
add esp, 0x14
jmp 0x10029e90
push ecx
push eax
push dword [esi + 4]
mov dword [esi + 8], eax
push dword [esi]
mov dword [esi + 0xc], ecx
call fcn.100283f0
mov ecx, eax
add esp, 0x10
or ecx, edx
je 0x10029e90
xor edi, edi
test edx, edx
jg 0x100298bc
jl 0x100298b7
test eax, eax
jae 0x100298bc
mov edi, 1
push 0
push 0
push edi
push esi
call fcn.1002a9c0
mov ecx, 1
add esp, 0x10
sub ecx, edi
lea eax, [ecx*2 + 0xb]
add eax, ecx
cmp dword [esi + 0x4c], 1
lea eax, [esi + eax*8]
mov dword [esp + 0x1c], eax
jne 0x100298f6
push ecx
push esi
call fcn.10029190
add esp, 8
jmp 0x10029e90
mov eax, ecx
mov edi, 0x5a0000
mov ecx, 0xb40000
mov ebx, 0
imul ecx
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
movlpd qword [esp + 0x90], xmm0
sub edi, eax
mov eax, dword [esi + 0x4c]
sbb ebx, edx
test eax, eax
sete byte [esp + 0xf]
test eax, eax
je 0x10029a5f
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
call fcn.100283f0
mov ecx, eax
add esp, 0x10
mov eax, dword [esi]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x10], eax
cmp ecx, 0xb40000
jne 0x10029965
test edx, edx
jne 0x10029965
mov eax, edi
mov edx, ebx
jmp 0x10029992
push 0
push 2
push edx
push ecx
call fcn.10032360
mov ecx, eax
mov eax, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x10]
adc ecx, edx
add eax, edi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
adc ecx, ebx
mov dword [esp + 0x10], ecx
push edx
push eax
call fcn.100283b0
push edx
push eax
push dword [esi + 0x44]
mov dword [esp + 0x40], eax
push dword [esi + 0x40]
mov dword [esp + 0x48], edx
call fcn.10028650
add esp, 0x18
test edx, edx
jg 0x100299be
jl 0x100299d1
cmp eax, 0x10000
jb 0x100299d1
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
cmp byte [esp + 0xf], 0
je 0x10029a82
add edi, dword [esi + 8]
mov eax, dword [esi + 0x38]
adc ebx, dword [esi + 0xc]
push ebx
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x9c]
push edi
push eax
mov dword [esp + 0xa8], 0
call fcn.100286c0
movd xmm0, dword [esp + 0xa4]
lea ecx, [esp + 0xa4]
cvtdq2ps xmm0, xmm0
push 0
push ecx
mulss xmm0, dword [esi + 0x88]
cvttss2si eax, xmm0
movd xmm0, dword [esp + 0xb0]
add eax, dword [esi + 0x10]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0xac], eax
mulss xmm0, dword [esi + 0x8c]
cvttss2si eax, xmm0
add eax, dword [esi + 0x14]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x30]
push eax
mov byte [eax + 0x14], 0
call fcn.100296c0
add esp, 0x18
jmp 0x10029e90
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x90]
jmp 0x100299c6
push ecx
push eax
push dword [esi + 0x3c]
push dword [esi + 0x38]
call fcn.10028460
push dword [esp + 0x20]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x4c]
push dword [esp + 0x28]
mov dword [esp + 0x54], 0
push eax
call fcn.100286c0
movd xmm0, dword [esp + 0x54]
cvtdq2ps xmm0, xmm0
push 0
mulss xmm0, dword [esi + 0x88]
cvttss2si eax, xmm0
movd xmm0, dword [esp + 0x5c]
add eax, dword [esi + 0x10]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x58], eax
mulss xmm0, dword [esi + 0x8c]
cvttss2si eax, xmm0
add eax, dword [esi + 0x14]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x40]
call fcn.100296c0
add edi, dword [esi + 8]
mov eax, dword [esi + 0x38]
adc ebx, dword [esi + 0xc]
push ebx
mov dword [esp + 0x64], eax
lea eax, [esp + 0x64]
push edi
push eax
mov dword [esp + 0x70], 0
call fcn.100286c0
movd xmm0, dword [esp + 0x6c]
cvtdq2ps xmm0, xmm0
push 0
mulss xmm0, dword [esi + 0x88]
cvttss2si eax, xmm0
movd xmm0, dword [esp + 0x74]
add eax, dword [esi + 0x10]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x70], eax
mulss xmm0, dword [esi + 0x8c]
cvttss2si eax, xmm0
add eax, dword [esi + 0x14]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x58]
call fcn.100296c0
add esp, 0x40
jmp 0x10029e90
push ecx
push eax
push dword [esi + 4]
push dword [esi]
call fcn.100283f0
mov ecx, eax
add esp, 0x10
mov eax, edx
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov dword [esp + 0x4c], eax
js 0x10029e90
jg 0x10029b9a
cmp ecx, 0x5a000
jbe 0x10029e90
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x5c]
push eax
mov dword [esi + 0x14], ecx
mov ecx, dword [esp + 0x5c]
push ecx
push dword [esi + 4]
mov dword [esi + 8], ecx
push dword [esi]
mov dword [esi + 0xc], eax
mov dword [esi + 0x4c], 1
call fcn.100283f0
mov ecx, eax
add esp, 0x10
or ecx, edx
je 0x10029e8a
xor edi, edi
test edx, edx
jg 0x10029be5
jl 0x10029be0
test eax, eax
jae 0x10029be5
mov edi, 1
push 0
push 0
push edi
push esi
call fcn.1002a9c0
mov ecx, 1
add esp, 0x10
sub ecx, edi
lea eax, [ecx*2 + 0xb]
add eax, ecx
cmp dword [esi + 0x4c], 1
lea eax, [esi + eax*8]
mov dword [esp + 0x1c], eax
jne 0x10029c1f
push ecx
push esi
call fcn.10029190
add esp, 8
jmp 0x10029e8a
mov eax, ecx
mov edi, 0x5a0000
mov ecx, 0xb40000
mov ebx, 0
imul ecx
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
movlpd qword [esp + 0x90], xmm0
sub edi, eax
mov eax, dword [esi + 0x4c]
sbb ebx, edx
test eax, eax
sete byte [esp + 0xf]
test eax, eax
je 0x10029d88
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
call fcn.100283f0
mov ecx, eax
add esp, 0x10
mov eax, dword [esi]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x14], eax
cmp ecx, 0xb40000
jne 0x10029c8e
test edx, edx
jne 0x10029c8e
mov eax, edi
mov edx, ebx
jmp 0x10029cbb
push 0
push 2
push edx
push ecx
call fcn.10032360
mov ecx, eax
mov eax, dword [esp + 0x10]
add eax, ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x14]
adc ecx, edx
add eax, edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
adc ecx, ebx
mov dword [esp + 0x14], ecx
push edx
push eax
call fcn.100283b0
push edx
push eax
push dword [esi + 0x44]
mov dword [esp + 0x44], eax
push dword [esi + 0x40]
mov dword [esp + 0x44], edx
call fcn.10028650
add esp, 0x18
test edx, edx
jg 0x10029ce7
jl 0x10029cfa
cmp eax, 0x10000
jb 0x10029cfa
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
cmp byte [esp + 0xf], 0
je 0x10029dab
add edi, dword [esi + 8]
mov eax, dword [esi + 0x38]
adc ebx, dword [esi + 0xc]
push ebx
mov dword [esp + 0xa4], eax
lea eax, [esp + 0xa4]
push edi
push eax
mov dword [esp + 0xb0], 0
call fcn.100286c0
movd xmm0, dword [esp + 0xac]
lea ecx, [esp + 0xac]
cvtdq2ps xmm0, xmm0
push 0
push ecx
mulss xmm0, dword [esi + 0x88]
cvttss2si eax, xmm0
movd xmm0, dword [esp + 0xb8]
add eax, dword [esi + 0x10]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0xb4], eax
mulss xmm0, dword [esi + 0x8c]
cvttss2si eax, xmm0
add eax, dword [esi + 0x14]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x30]
push eax
mov byte [eax + 0x14], 0
call fcn.100296c0
add esp, 0x18
jmp 0x10029e8a
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x90]
jmp 0x10029cef
push ecx
push eax
push dword [esi + 0x3c]
push dword [esi + 0x38]
call fcn.10028460
push dword [esp + 0x24]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x54]
push dword [esp + 0x24]
mov dword [esp + 0x5c], 0
push eax
call fcn.100286c0
movd xmm0, dword [esp + 0x5c]
cvtdq2ps xmm0, xmm0
push 0
mulss xmm0, dword [esi + 0x88]
cvttss2si eax, xmm0
movd xmm0, dword [esp + 0x64]
add eax, dword [esi + 0x10]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x60], eax
mulss xmm0, dword [esi + 0x8c]
cvttss2si eax, xmm0
add eax, dword [esi + 0x14]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x60]
push eax
push dword [esp + 0x40]
call fcn.100296c0
add edi, dword [esi + 8]
mov eax, dword [esi + 0x38]
adc ebx, dword [esi + 0xc]
push ebx
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x6c]
push edi
push eax
mov dword [esp + 0x78], 0
call fcn.100286c0
movd xmm0, dword [esp + 0x74]
cvtdq2ps xmm0, xmm0
push 0
mulss xmm0, dword [esi + 0x88]
cvttss2si eax, xmm0
movd xmm0, dword [esp + 0x7c]
add eax, dword [esi + 0x10]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x78], eax
mulss xmm0, dword [esi + 0x8c]
cvttss2si eax, xmm0
add eax, dword [esi + 0x14]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x78]
push eax
push dword [esp + 0x58]
call fcn.100296c0
add esp, 0x40
mov eax, dword [esi + 0x50]
mov dword [esi + 0x4c], eax
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
call fcn.100283f0
add esp, 0x10
push 0
push 2
push edx
push eax
call fcn.10032360
push dword [esp + 0x6c]
mov edi, eax
mov esi, edx
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.100283f0
add esp, 0x10
push 0
push 2
push edx
push eax
call fcn.10032360
push dword [esp + 0x64]
mov dword [esp + 0x38], eax
mov ebx, edx
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
call fcn.10028580
push dword [esp + 0x7c]
mov dword [esp + 0xd8], eax
push dword [esp + 0x7c]
mov dword [esp + 0xe0], edx
push dword [esp + 0x7c]
push dword [esp + 0x7c]
call fcn.10028580
push esi
push edi
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], edx
call fcn.100283b0
mov esi, dword [esp + 0x7c]
push edx
push eax
push dword [esi + 0x3c]
push dword [esi + 0x38]
call fcn.10028460
push ebx
push dword [esp + 0x70]
mov dword [esp + 0x100], eax
mov dword [esp + 0x8c], edx
call fcn.100283b0
add esp, 0x40
push edx
push eax
push dword [esi + 0x3c]
push dword [esi + 0x38]
call fcn.10028460
add esp, 0x10
mov dword [esp + 0x4c], edx
cmp byte [esi + 0x92], 0
xorps xmm0, xmm0
mov dword [esp + 0xcc], eax
movlpd qword [esp + 0x48], xmm0
je 0x10029fb9
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
sub eax, dword [ecx + 0x18]
mov dword [esp + 0xd0], eax
mov eax, dword [ecx + 4]
sub eax, dword [ecx + 0x1c]
mov dword [esp + 0xd4], eax
lea eax, [esp + 0xd0]
push eax
call fcn.10028330
add esp, 4
mov dword [esp + 0x30], edx
jmp 0x10029fc5
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
lea ebx, [esi + 0x58]
xor eax, eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0xa8], eax
nop dword [eax]
mov ecx, 0xb40000
mov dword [esp + 0x88], 0
imul ecx
mov edi, 0x5a0000
mov esi, 0
sub edi, eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x84], eax
mov ecx, edi
sbb esi, edx
add ecx, dword [esp + 0xc4]
mov eax, esi
adc eax, dword [esp + 0xc8]
push eax
push ecx
lea eax, [esp + 0x8c]
push eax
call fcn.100286c0
movd xmm0, dword [esp + 0x90]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x34]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x8c], 0
mulss xmm0, dword [ecx + 0x88]
cvttss2si eax, xmm0
movd xmm0, dword [esp + 0x94]
add eax, dword [edx + 0x10]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x90], eax
mulss xmm0, dword [ecx + 0x8c]
mov ecx, edi
cvttss2si eax, xmm0
add eax, dword [edx + 0x14]
add ecx, dword [esp + 0xb8]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x88], eax
mov eax, esi
adc eax, dword [esp + 0xbc]
push eax
push ecx
lea eax, [esp + 0x90]
push eax
call fcn.100286c0
movd xmm0, dword [esp + 0x94]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x40]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x3c], 0
mulss xmm0, dword [ecx + 0x88]
cvttss2si eax, xmm0
movd xmm0, dword [esp + 0x98]
add eax, dword [edx + 8]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x94], eax
mulss xmm0, dword [ecx + 0x8c]
cvttss2si eax, xmm0
add eax, dword [edx + 0xc]
add edi, dword [esp + 0x80]
mov dword [esp + 0x98], eax
adc esi, dword [esp + 0x84]
mov eax, dword [ecx + 0x38]
push esi
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
push edi
push eax
call fcn.100286c0
movd xmm0, dword [esp + 0x44]
add esp, 0x24
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x28]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esi + 0x88]
cvttss2si edx, xmm0
movd xmm0, dword [esp + 0x24]
add edx, dword [edi]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x20], edx
mulss xmm0, dword [esi + 0x8c]
cvttss2si ecx, xmm0
mov eax, dword [edi + 4]
add eax, ecx
cmp byte [esi + 0x92], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], eax
je 0x1002a525
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
mov edi, dword [ecx + eax*8 - 8]
mov ecx, dword [ecx + eax*8 - 4]
mov eax, edi
sub edx, eax
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x10]
sub eax, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0xdc], eax
lea eax, [esp + 0xd8]
push eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x100], ecx
mov dword [esp + 0xdc], edx
call fcn.10028330
push edx
push eax
push dword [esp + 0x3c]
mov dword [esp + 0xc4], eax
push dword [esp + 0x3c]
mov dword [esp + 0xa0], edx
call fcn.100283f0
mov edi, dword [esp + 0x3c]
mov ecx, eax
mov eax, edx
add esp, 0x14
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
mov dword [esp + 0x4c], eax
js 0x1002a525
jg 0x1002a210
cmp ecx, 0x5a0000
jbe 0x1002a525
mov eax, dword [edi + 0x18]
sub eax, dword [esp + 0x14]
mov dword [esp + 0xe0], eax
mov eax, dword [edi + 0x1c]
sub eax, dword [esp + 0x1c]
mov dword [esp + 0xe4], eax
lea eax, [esp + 0xe0]
push eax
call fcn.10028330
mov ecx, dword [edi]
sub ecx, dword [esp + 0x24]
mov dword [esp + 0xec], ecx
mov ecx, dword [edi + 4]
sub ecx, dword [esp + 0x28]
mov dword [esp + 0x14], eax
lea eax, [esp + 0xec]
push eax
mov dword [esp + 0xc0], edx
mov dword [esp + 0xf4], ecx
call fcn.10028330
mov ecx, dword [esp + 0x28]
mov ebx, eax
sub ecx, dword [esp + 0x1c]
lea eax, [esp + 0xf8]
mov dword [esp + 0xf8], ecx
mov esi, edx
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x24]
push eax
mov dword [esp + 0xc8], esi
mov dword [esp + 0x100], ecx
call fcn.100284f0
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xc0]
sub eax, ebx
mov dword [esp + 0x9c], edx
sbb ecx, esi
push ecx
push eax
call fcn.100287d0
mov esi, dword [esp + 0x24]
mov edi, edx
sub esi, ebx
mov dword [esp + 0xa0], eax
mov ebx, dword [esp + 0xcc]
mov ecx, ebx
sbb ecx, dword [esp + 0xd0]
push ecx
push esi
call fcn.100287d0
mov ecx, eax
mov eax, edx
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
push eax
push ecx
mov ecx, dword [esp + 0xb0]
mov eax, edi
cdq
xor eax, edx
xor ecx, edx
sub ecx, edx
sbb eax, edx
push eax
push ecx
push dword [esp + 0xbc]
push dword [esp + 0x78]
call fcn.100285b0
push ebx
push dword [esp + 0x48]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xb0]
push eax
mov dword [esp + 0xb8], 0
call fcn.100286c0
mov edx, dword [esp + 0x54]
add esp, 0x40
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
add edx, dword [esp + 0x74]
add edi, dword [esp + 0x78]
mov ecx, dword [ebx]
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], edi
mov byte [ebx + 0x14], 0
test ecx, ecx
je 0x1002a38f
mov esi, dword [ebx + 8]
mov eax, dword [esi + ecx*8 - 8]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x1002a38f
mov eax, dword [esi + ecx*8 - 4]
sub eax, edi
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jl 0x1002a3c2
push 1
push ebx
call fcn.1002a970
mov eax, dword [ebx]
add esp, 8
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], esi
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx]
mov byte [ecx + eax], 1
add dword [ebx], 1
mov ecx, dword [ebx]
mov byte [ebx + 0x14], 0
je 0x1002a3eb
mov eax, dword [ebx + 8]
mov esi, dword [eax + ecx*8 - 4]
mov eax, dword [eax + ecx*8 - 8]
sub eax, dword [esp + 0x20]
sub esi, dword [esp + 0x24]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x1002a3eb
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jl 0x1002a419
push 1
push ebx
call fcn.1002a970
mov eax, dword [ebx]
add esp, 8
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [ebx]
mov ecx, dword [ebx + 0xc]
mov byte [ecx + eax], 1
inc dword [ebx]
mov byte [ebx + 0x14], 0
lea eax, [esp + 0xf8]
push eax
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x84]
push eax
push ebx
call fcn.10029630
add esp, 0x10
cmp byte [ebx + 0x14], 0
je 0x1002a457
mov ecx, dword [ebx + 8]
mov eax, dword [ebx]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov dword [ecx + eax*8 - 8], edx
mov dword [ecx + eax*8 - 4], esi
jmp 0x1002a4b0
mov ecx, dword [ebx]
test ecx, ecx
je 0x1002a486
mov eax, dword [ebx + 8]
mov esi, dword [eax + ecx*8 - 4]
mov eax, dword [eax + ecx*8 - 8]
sub eax, dword [esp + 0x20]
sub esi, dword [esp + 0x24]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x1002a486
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jl 0x1002a4b4
push 1
push ebx
call fcn.1002a970
mov eax, dword [ebx]
add esp, 8
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [ebx]
mov ecx, dword [ebx + 0xc]
mov byte [ecx + eax], 1
inc dword [ebx]
mov byte [ebx + 0x14], 0
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0xa8]
add ebx, 0x18
inc eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0xa8], eax
cmp eax, 2
jl 0x10029fe0
mov eax, dword [esp + 0x68]
sub edi, 0x18
mov ecx, dword [esp + 0x6c]
mov bl, byte [esp + 0x1b]
mov dword [esi], eax
mov dword [esi + 4], ecx
lea eax, [esp + 0x100]
mov dword [esp + 0x28], edi
cmp edi, eax
jae 0x100297f0
mov ecx, dword [ebp + 0x14]
pop edi
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esi + 0x14], ecx
mov ecx, dword [esp + 0x228]
mov dword [esi + 0x10], eax
pop esi
pop ebx
xor ecx, esp
call fcn.1003189d
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x8c]
push eax
push ebx
call fcn.10029630
add esp, 0x10
jmp 0x1002a4bc