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

Disassembly:
push ebp
mov eax, 0x2d7c
push edi
push esi
push ebx
call fcn.703e0830
sub esp, eax
mov eax, dword [esp + 0x2db8]
lea esi, [eax + eax*4]
lea edx, [esi + 0x14]
lea eax, [esi*4]
imul edx, dword [esp + 0x2db0]
shl esi, 3
cmp dword [esp + 0x2db0], 0x10
mov dword [esp + 0x18], eax
lea ebp, [esi + 0xa0]
je 0x7034a9e9
cmp dword [esp + 0x2db0], 0xc
je 0x7034a80b
add esi, 0x9f
lea edi, [esp + 0x760]
js 0x70349a5c
mov edx, dword [esp + 0x2d90]
fld dword [edx + esi*4]
mov dword [esp + 0x22d0], 0
fld st(0)
fistp dword [esp + 0x22d0]
cmp dword [esp + 0x22d0], 0x7fff
mov eax, 0x7fff
jg 0x70349a4a
mov dword [esp + 0x22d0], 0
fld st(0)
fistp dword [esp + 0x22d0]
cmp dword [esp + 0x22d0], 0xffff8000
mov eax, 0xffff8000
jl 0x70349a4e
mov dword [esp + 0x22d0], 0
fistp dword [esp + 0x22d0]
movzx eax, word [esp + 0x22d0]
jmp 0x70349a50
fstp st(0)
jmp 0x70349a50
fstp st(0)
mov word [edi + esi*2], ax
sub esi, 1
cmp esi, 0xffffffff
jne 0x703499df
lea ebx, [esp + 0x74]
lea esi, [esp + 0x3a0]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
call fcn.7034fdb0
mov ecx, dword [esp + 0x18]
add ecx, 0x4f
js 0x70349ac3
mov eax, ecx
lea edx, [esp + 0x4e0]
lea esi, [esi]
fild word [esi + eax*2]
fstp dword [edx + eax*4]
sub eax, 1
cmp eax, 0xffffffff
jne 0x70349aa0
test ecx, ecx
jle 0x70349ac3
lea eax, [edx + ecx*4]
fld dword [eax]
sub eax, 4
fadd dword [eax]
fstp dword [eax + 4]
cmp eax, edx
jne 0x70349ab5
imul eax, dword [esp + 0x2db8], 0x254
lea ebx, [esp + 0xee0]
mov dword [esp + 4], 0
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.6fef7ef0
mov eax, dword [esp + 0x2db8]
sar eax, 1
test eax, eax
mov dword [esp + 0x2c], eax
jle 0x70349bed
xor ebp, ebp
lea esi, [esp + 0x620]
mov eax, ebp
lea edi, [esp + 0x170]
mov ebp, esi
mov esi, eax
lea eax, [ebp - 0x120]
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0x41
mov dword [esp + 0xc], 0x28
mov dword [esp + 8], edi
mov dword [esp], ebp
call fcn.703392e0
mov dword [esp + 4], 0x28
mov dword [esp], ebp
fld dword [esp + 0x270]
fstp qword [esp + 0x20]
call fcn.7034ab00
lea eax, [ebp - 0x20]
mov dword [esp], eax
mov dword [esp + 4], 0x28
fstp qword [esp + 0x18]
call fcn.7034ab00
lea edx, [esp + 0xf04]
mov eax, 0x40
fadd qword [esp + 0x18]
fadd dword [0x708b6aa4]
fld qword [esp + 0x20]
fadd st(0)
fdiv st(1)
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
fadd dword [esp + 0xf00]
fstp dword [esp + 0xf00]
fld dword [ebp + eax*4 - 0x124]
add edx, 4
fld dword [ebp + eax*4 - 0x84]
fxch st(1)
fmul st(0)
fxch st(1)
fmul st(0)
fsubp st(1)
faddp st(1)
fld dword [edi + eax*4 - 4]
fadd st(0)
fdiv st(1)
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
fadd dword [edx - 4]
fstp dword [edx - 4]
sub eax, 1
jne 0x70349ba0
fstp st(0)
add ebp, 0xa0
add esi, 1
cmp esi, dword [esp + 0x2c]
jne 0x70349b14
mov eax, 0x48
fld dword [0x708b6aa8]
fld dword [ebx + eax*4]
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
fmul st(1)
fmul st(2)
fsubp st(1)
fstp dword [ebx + eax*4]
sub eax, 1
cmp eax, 7
jne 0x70349bf8
fstp st(0)
mov eax, dword [esp + 0x2db4]
mov dword [esp + 8], 0x41
lea esi, [eax + eax + 4]
lea eax, [esp + 0x110]
mov dword [esp + 4], eax
lea eax, [esp + 0xf00]
mov dword [esp + 0xc], esi
mov dword [esp], eax
call fcn.7034fe80
fld dword [esp + 0xf00]
fld dword [0x708b6aac]
fucompi st(1)
ja 0x7034a7b1
fld dword [esp + 0x2da8]
test esi, esi
fmul st(1)
jle 0x70349ca0
fxch st(1)
xor eax, eax
fucompi st(1)
ja 0x70349c83
fstp st(0)
xor esi, esi
jmp 0x70349ca4
fld dword [ebx + eax*4 + 0x20]
fucompi st(1)
jbe 0x7034a712
mov edx, dword [esp + eax*4 + 0x110]
lea edx, [edx + edx + 0x10]
mov dword [esp + eax*4 + 0x110], edx
add eax, 1
cmp eax, esi
jne 0x70349c77
fstp st(0)
jmp 0x70349ca4
fstp st(0)
fstp st(0)
lea eax, [esp + 0x28c]
lea edx, [esp + 0x39e]
xor edi, edi
add eax, 2
mov word [eax - 2], di
cmp eax, edx
jne 0x70349cb2
test esi, esi
jle 0x70349ce7
lea eax, [esp + 0x110]
lea ecx, [esp + esi*4 + 0x110]
mov edx, dword [eax]
add eax, 4
mov esi, 1
cmp eax, ecx
mov word [esp + edx*2 + 0x276], si
jne 0x70349cd1
lea ecx, [esp + 0x294]
lea eax, [esp + 0x39a]
movzx edx, word [eax - 2]
sub eax, 2
add dx, word [eax + 2]
add dx, word [eax - 2]
mov word [eax + 2], dx
cmp eax, ecx
jne 0x70349cf5
xor esi, esi
mov edx, 0x10
jmp 0x70349d17
mov edx, eax
lea eax, [edx + 1]
cmp word [esp + eax*2 + 0x276], 0
jle 0x70349d2f
mov dword [esp + esi*4 + 0x110], edx
add esi, 1
cmp eax, 0x90
jne 0x70349d15
mov dword [esp + 0x50], esi
lea eax, [esp + 0x39a]
movzx edx, word [eax - 2]
sub eax, 2
add dx, word [eax + 2]
add dx, word [eax - 2]
add dx, word [eax - 4]
mov word [eax + 2], dx
cmp eax, ecx
jne 0x70349d41
xor edx, edx
mov eax, 0x10
cmp word [esp + eax*2 + 0x276], 0
jle 0x70349d7c
lea ecx, [eax - 2]
mov word [esp + edx*2 + 0x276], cx
add edx, 1
add eax, 1
cmp eax, 0x93
jne 0x70349d63
xor al, al
mov ecx, 0x254
mov edi, ebx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x2d90]
cmp dword [esp + 0x2db0], 8
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], 0
lea esi, [eax + 0x280]
lea eax, [esp + 0xc60]
cmovne esi, eax
lea eax, [esp + edx*2 + 0x276]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2db8]
test eax, eax
jle 0x70349eab
mov dword [esp + 4], 0x28
mov dword [esp], esi
call fcn.7034ab00
mov edi, dword [esp + 0x3c]
test edi, edi
fadd dword [0x708b6ab0]
fstp qword [esp + 0x30]
je 0x70349e8f
imul eax, dword [esp + 0x38], 0x95
lea ebp, [esp + 0x276]
mov edi, ebp
mov dword [esp + 0x20], eax
jmp 0x70349e47
fstp st(0)
mov dword [esp + 4], 0x28
add edi, 2
mov dword [esp], ebp
call fcn.7034ab00
add ebx, dword [esp + 0x20]
cmp edi, dword [esp + 0x2c]
fld qword [esp + 0x18]
fadd st(0)
fxch st(1)
fadd qword [esp + 0x30]
fdivp st(1)
fstp dword [esp + ebx*4 + 0xee0]
je 0x70349e8f
movsx ebx, word [edi]
mov ebp, esi
mov dword [esp + 8], 0x28
mov dword [esp + 4], esi
lea edx, [ebx*4]
sub ebp, edx
mov dword [esp], ebp
call fcn.7034fd40
fldz
fld st(0)
fxch st(2)
fucomi st(2)
fstp st(2)
fxch st(1)
fstp qword [esp + 0x18]
ja 0x70349e13
add ebx, dword [esp + 0x20]
add edi, 2
cmp edi, dword [esp + 0x2c]
fstp dword [esp + ebx*4 + 0xee0]
jne 0x70349e47
add dword [esp + 0x38], 1
add esi, 0xa0
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x2db8]
jne 0x70349dd6
mov ebp, dword [esp + 0x2da4]
test ebp, ebp
jle 0x7034a71b
cmp dword [esp + 0x2db0], 0xc
mov eax, dword [esp + 0x2da4]
je 0x7034a15f
sar eax, 1
cmp dword [esp + 0x2db0], 0x10
cmovne eax, dword [esp + 0x2da4]
mov dword [esp + 0x2da4], eax
fild dword [esp + 0x2da4]
fstp qword [esp]
call sub.msvcrt.dll_log10
cmp dword [esp + 0x2db8], 4
fmul qword [0x708b6ab8]
fstp dword [esp + 0x54]
je 0x7034a72f
mov dword [esp + 0x2c], 0x708b6d68
mov ebp, 3
mov dword [esp + 0x20], 3
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x7034a9c2
fld dword [0x708b6aa0]
mov edi, dword [esp + 0x2db8]
fldz
fstp dword [esp + 0x4c]
mov dword [esp + 0x44], 0xffffffff
fild dword [esp + 0x2db8]
mov dword [esp + 0x48], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x18], ebp
mov eax, dword [esp + 0x30]
xor esi, esi
fldz
mov ebp, dword [esp + eax*4 + 0x110]
test edi, edi
mov dword [esp + esi*4 + 0x8c], 0
jle 0x70349fb5
mov eax, dword [esp + 0x2c]
fld st(0)
lea edx, [eax + esi]
xor eax, eax
imul ebx, eax, 0x95
movsx ecx, byte [edx]
add eax, 1
add edx, dword [esp + 0x18]
add ebx, ebp
add ecx, ebx
cmp eax, edi
fadd dword [esp + ecx*4 + 0xee0]
jne 0x70349f8f
fstp dword [esp + esi*4 + 0x8c]
add esi, 1
cmp dword [esp + 0x20], esi
jg 0x70349f75
fstp st(0)
mov edx, dword [esp + 0x20]
xor ebx, ebx
xor eax, eax
fld dword [0x708b6aa0]
nop
fld dword [esp + eax*4 + 0x8c]
fucomi st(1)
jbe 0x70349fe1
fstp st(1)
mov ebx, eax
jmp 0x70349fe3
fstp st(0)
add eax, 1
cmp edx, eax
jg 0x70349fd0
fxch st(2)
fstp dword [esp + 0x40]
fxch st(1)
fstp dword [esp + 0x3c]
fstp dword [esp + 0x38]
mov dword [esp + 0x68], ebp
fild dword [esp + 0x68]
fstp qword [esp]
call sub.msvcrt.dll_log10
mov eax, dword [esp + 0x2da4]
test eax, eax
fmul qword [0x708b6ab8]
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
fld dword [esp + 0x38]
fld dword [0x708b6aac]
fmul st(1)
fld st(0)
fmul st(3)
fld dword [esp + 0x3c]
fsubr st(1), st(0)
fld dword [esp + 0x40]
jle 0x7034a064
fxch st(5)
fsub dword [esp + 0x54]
mov eax, dword [esp + 0x2da0]
fmul st(0)
fxch st(3)
fmul dword [eax]
fmul st(3)
fxch st(3)
fadd dword [0x708b6ac0]
fdivp st(3)
fxch st(1)
fsubrp st(2)
fxch st(1)
jmp 0x7034a068
fstp st(5)
fstp st(2)
fucomi st(3)
jbe 0x7034a0a0
fld dword [esp + 0x2dac]
fmul st(3)
fxch st(2)
fucomi st(2)
fstp st(2)
fcmovbe st(0), st(3)
fstp st(3)
cmovbe ebp, dword [esp + 0x44]
fld dword [esp + 0x4c]
cmovbe ebx, dword [esp + 0x48]
fcmovnbe st(0), st(1)
fstp st(1)
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebx
fstp dword [esp + 0x4c]
jmp 0x7034a0a4
fstp st(0)
fstp st(0)
add dword [esp + 0x30], 1
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x30], eax
jne 0x70349f66
fstp st(1)
cmp dword [esp + 0x44], 0xffffffff
mov ebp, dword [esp + 0x18]
je 0x7034a9c0
fdivr dword [esp + 0x4c]
mov eax, dword [esp + 0x2da0]
cmp dword [esp + 0x2db0], 8
fstp dword [eax]
jg 0x7034a181
mov eax, dword [esp + 0x2db8]
test eax, eax
jle 0x7034a132
mov ecx, dword [esp + 0x2d94]
mov esi, 0x10
mov edi, 0x90
mov eax, dword [esp + 0x2db8]
mov edx, dword [esp + 0x2c]
add edx, dword [esp + 0x48]
lea ebx, [ecx + eax*4]
movsx eax, byte [edx]
add eax, dword [esp + 0x44]
cmp eax, 0x10
cmovl eax, esi
cmp eax, 0x90
cmovg eax, edi
add ecx, 4
mov dword [ecx - 4], eax
add edx, ebp
cmp ecx, ebx
jne 0x7034a111
movzx eax, word [esp + 0x44]
mov esi, dword [esp + 0x2d98]
sub eax, 0x10
mov word [esi], ax
mov esi, dword [esp + 0x2d9c]
movzx eax, byte [esp + 0x48]
mov byte [esi], al
add esp, 0x2d7c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
lea ecx, [eax + eax]
mov edx, 0x55555556
mov eax, ecx
imul edx
sar ecx, 0x1f
mov dword [esp + 0x2da4], edx
sub dword [esp + 0x2da4], ecx
jmp 0x70349ee8
cmp dword [esp + 0x2db0], 0xc
je 0x7034a766
mov ecx, dword [esp + 0x2db0]
mov esi, dword [esp + 0x2db0]
mov edx, dword [esp + 0x44]
lea ecx, [ecx + ecx*8]
add ecx, ecx
add esi, esi
mov dword [esp + 0x60], ecx
sub ecx, 1
add edx, edx
cmp esi, ecx
mov eax, edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x50], ecx
jle 0x7034a78f
cmp esi, edx
mov dword [esp + 0x2c], esi
jge 0x7034a911
mov eax, dword [esp + 0x2db0]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
lea eax, [eax + eax*4]
mov dword [esp + 0x30], eax
mov eax, esi
sub eax, 2
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x20], eax
mov eax, esi
mov esi, dword [esp + 0x50]
add eax, 2
cmp eax, esi
cmovg eax, esi
cmp dword [esp + 0x2db8], 4
mov dword [esp + 0x64], eax
je 0x7034a978
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x2db8]
shl eax, 4
add eax, dword [esp + 0x2d90]
test ebp, ebp
mov dword [esp + 0x3c], eax
jle 0x7034aae3
mov dword [esp + 0x4c], 0xc
mov ebp, 0x708b6d50
mov dword [esp + 0x54], 0xc
mov dword [esp + 0x40], 0x708b6d4c
mov eax, dword [esp + 0x20]
add ebp, dword [esp + 0x4c]
mov dword [esp + 0x18], 0
shl eax, 2
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x30]
shl eax, 2
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x22d0]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x44]
movsx edi, byte [eax + esi*2]
movsx esi, byte [eax + esi*2 + 1]
mov ecx, ebx
mov dword [esp], ebx
mov eax, esi
sub eax, edi
add eax, 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1830]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x58]
lea eax, [eax + esi*4]
sub ecx, eax
mov dword [esp + 4], ecx
call fcn.703392e0
cmp edi, esi
jg 0x7034a302
mov eax, edi
sub eax, esi
sub esi, edi
lea ebx, [eax*4 - 4]
xor eax, eax
lea ecx, [esp + esi*4 + 0x1830]
lea esi, [esp + 0xb8]
mov edx, eax
fld dword [ecx + eax]
sub eax, 4
neg edx
cmp eax, ebx
fstp dword [esi + edx]
jne 0x7034a2f1
mov eax, dword [esp + 0x40]
mov ebx, ebp
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
movsx edi, byte [eax + esi*2]
lea esi, [esp + 0xb8]
mov eax, dword [esp + 0x4c]
sub ebx, eax
test eax, eax
jle 0x7034a348
movsx eax, byte [ebx]
sub eax, edi
lea ecx, [esi + eax*4]
xor eax, eax
nop
fld dword [ecx + eax*4]
fstp dword [edx + eax*4]
add eax, 1
cmp eax, 5
jne 0x7034a330
add ebx, 1
add edx, 0x14
cmp ebx, ebp
jne 0x7034a325
mov eax, dword [esp + 0x5c]
add dword [esp + 0x18], 1
add dword [esp + 0x44], eax
mov eax, dword [esp + 0x18]
add ebp, dword [esp + 0x54]
add dword [esp + 0x48], 0x2a8
cmp dword [esp + 0x2db8], eax
jg 0x7034a286
cmp dword [esp + 0x2db8], 4
je 0x7034a942
mov edi, dword [esp + 0x2db8]
test edi, edi
jle 0x7034aae3
mov dword [esp + 0x48], 0xc
mov eax, 0x708b6d50
mov dword [esp + 0x54], 0xc
mov dword [esp + 0x58], 0x708b6d4c
mov esi, dword [esp + 0x30]
lea ebp, [esp + 0xbc]
mov dword [esp + 0x18], 0
shl esi, 2
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x48]
lea edi, [eax + esi]
lea eax, [esp + 0x1830]
mov dword [esp + 0x40], eax
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
movsx eax, byte [esi + ecx*2]
add eax, dword [esp + 0x20]
shl eax, 2
sub ebx, eax
mov eax, dword [esp + 0x30]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.7034ab00
mov ecx, dword [esp + 0x18]
mov eax, esi
fadd qword [0x708b6ac8]
fst dword [esp + 0xb8]
movsx esi, byte [esi + ecx*2]
mov edx, esi
mov dword [esp + 0x4c], esi
movsx esi, byte [eax + ecx*2 + 1]
sub esi, edx
test esi, esi
jle 0x7034a458
mov eax, dword [esp + 0x44]
neg esi
shl esi, 2
lea ecx, [ebx + eax]
xor eax, eax
fld dword [ecx + eax - 4]
mov edx, ebp
fmul st(0)
sub edx, eax
fsubp st(1)
fld dword [ebx + eax - 4]
sub eax, 4
fmul st(0)
cmp eax, esi
faddp st(1)
fst dword [edx]
jne 0x7034a437
fstp st(0)
jmp 0x7034a45a
fstp st(0)
mov eax, dword [esp + 0x48]
mov ebx, edi
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x4c]
sub ebx, eax
test eax, eax
jle 0x7034a498
nop
movsx eax, byte [ebx]
sub eax, esi
lea ecx, [esp + eax*4 + 0xb8]
xor eax, eax
nop
fld dword [ecx + eax*4]
fstp dword [edx + eax*4]
add eax, 1
cmp eax, 5
jne 0x7034a480
add ebx, 1
add edx, 0x14
cmp ebx, edi
jne 0x7034a470
mov eax, dword [esp + 0x44]
add dword [esp + 0x18], 1
add dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
add edi, dword [esp + 0x54]
add dword [esp + 0x40], 0x2a8
cmp dword [esp + 0x2db8], eax
jg 0x7034a3d8
cmp dword [esp + 0x2db8], 4
fild dword [esp + 0x2c]
fdivr dword [0x708b6ad0]
je 0x7034a91f
mov dword [esp + 0x48], 0x708b6d50
mov ebp, 0xc
mov dword [esp + 0x44], 0xc
mov eax, dword [esp + 0x30]
fstp dword [esp + 0x18]
imul eax, dword [esp + 0x2db8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2db0]
lea eax, [eax + eax*4]
shl eax, 4
add eax, dword [esp + 0x2d90]
mov dword [esp], eax
call fcn.7034ab00
mov eax, dword [esp + 0x64]
cmp dword [esp + 0x20], eax
fadd dword [0x708b6ab0]
jg 0x7034aad8
lea esi, [esp + 0x22d0]
add eax, 1
fld dword [0x708b6aa0]
mov dword [esp + 0x3c], esi
lea esi, [esp + 0x1830]
xor edi, edi
mov dword [esp + 0x40], esi
fld dword [esp + 0x18]
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x50]
imul esi, dword [esp + 0x2db8], 0x2a8
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x30]
test edx, edx
jle 0x7034a63c
mov ecx, dword [esp + 0x40]
xor ebx, ebx
mov edx, dword [esp + 0x3c]
fldz
mov dword [esp + 0x18], esi
nop
lea esi, [esi]
mov esi, dword [esp + 0x2db8]
test esi, esi
jle 0x7034a700
mov esi, dword [esp + 0x18]
fld st(3)
xor eax, eax
fldz
jmp 0x7034a5b2
fxch st(1)
fadd dword [edx + eax]
fxch st(1)
fadd dword [ecx + eax]
add eax, 0x2a8
cmp eax, esi
jne 0x7034a5b0
fld st(2)
fxch st(2)
fucomi st(2)
fstp st(2)
mov dword [esp + 0x18], esi
jbe 0x7034a707
mov dword [esp + 0x68], ebx
fild dword [esp + 0x68]
fmul st(4)
fsubr dword [0x708b6ab0]
fxch st(2)
fadd st(0)
fdivrp st(1)
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
fmulp st(1)
fucomi st(3)
jbe 0x7034a621
movsx eax, byte [ebx + 0x708b6c80]
add eax, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
cmp ebp, eax
setl al
cmovge edi, ebx
cmovge esi, dword [esp + 0x20]
test al, al
fcmovne st(0), st(3)
fstp st(3)
mov dword [esp + 0x2c], esi
jmp 0x7034a623
fstp st(0)
add ebx, 1
add edx, 0x14
add ecx, 0x14
cmp ebx, dword [esp + 0x30]
jne 0x7034a590
fstp st(0)
mov esi, dword [esp + 0x18]
add dword [esp + 0x20], 1
mov eax, dword [esp + 0x4c]
add dword [esp + 0x3c], 4
add dword [esp + 0x40], 4
cmp dword [esp + 0x20], eax
jne 0x7034a56f
fstp st(0)
fstp st(0)
fstp st(0)
mov esi, edi
mov eax, dword [esp + 0x2db8]
test eax, eax
jle 0x7034a6cf
mov ecx, dword [esp + 0x2db8]
mov eax, dword [esp + 0x2d94]
add edi, dword [esp + 0x48]
lea ebx, [eax + ecx*4]
mov ecx, dword [esp + 0x60]
jmp 0x7034a6a3
mov ebp, dword [esp + 0x38]
cmp ebp, edx
jl 0x7034a696
cmp edx, ecx
cmovl edx, ecx
mov ebp, edx
mov dword [eax], ebp
add eax, 4
add edi, dword [esp + 0x44]
cmp eax, ebx
je 0x7034a6cf
movsx edx, byte [edi]
add edx, dword [esp + 0x2c]
cmp dword [esp + 0x38], ecx
jg 0x7034a687
cmp ecx, edx
mov ebp, ecx
jl 0x7034a696
mov ebp, dword [esp + 0x38]
cmp edx, ebp
cmovl edx, ebp
add eax, 4
mov ebp, edx
mov dword [eax - 4], ebp
add edi, dword [esp + 0x44]
cmp eax, ebx
jne 0x7034a6a3
mov ecx, dword [esp + 0x2d98]
movzx eax, word [esp + 0x2c]
sub ax, word [esp + 0x38]
mov word [ecx], ax
mov ecx, dword [esp + 0x2d9c]
mov eax, esi
mov byte [ecx], al
add esp, 0x2d7c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
fldz
jmp 0x7034a5f5
fstp st(0)
fstp st(0)
fld st(0)
jmp 0x7034a5f5
fstp st(0)
mov esi, eax
jmp 0x70349ca4
cmp dword [esp + 0x2db8], 4
fldz
fstp dword [esp + 0x54]
jne 0x70349f0f
cmp dword [esp + 0x2db0], 8
jne 0x7034a8f7
mov ebx, dword [esp + 0x2db4]
test ebx, ebx
jle 0x7034a8f7
mov dword [esp + 0x2c], 0x708b6d20
mov ebp, 0xb
mov dword [esp + 0x20], 0xb
jmp 0x70349f24
movsx eax, word [esp + 0x44]
mov dword [esp + 0x38], 0x18
mov dword [esp + 0x60], 0xd8
mov dword [esp + 0x50], 0xd7
lea edx, [eax + eax*2]
mov eax, edx
and edx, 1
sar eax, 1
add eax, edx
mov esi, dword [esp + 0x50]
cmp eax, esi
mov dword [esp + 0x2c], esi
jg 0x7034a1cf
mov esi, dword [esp + 0x38]
cmp eax, esi
cmovl eax, esi
mov dword [esp + 0x2c], eax
jmp 0x7034a1cf
fstp st(0)
mov eax, dword [esp + 0x2db8]
mov dword [esp + 4], 0
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2d94]
mov dword [esp], eax
call fcn.6fef7ef0
mov eax, dword [esp + 0x2da0]
xor edx, edx
mov dword [eax], 0
mov eax, dword [esp + 0x2d98]
mov word [eax], dx
mov eax, dword [esp + 0x2d9c]
mov byte [eax], 0
add esp, 0x2d7c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, edx
sub eax, 1
lea ecx, [esp + 0x22d0]
js 0x7034a8a1
mov edi, dword [esp + 0x2d90]
fld dword [edi + eax*4]
mov dword [esp + 0x1830], 0
fld st(0)
fistp dword [esp + 0x1830]
cmp dword [esp + 0x1830], 0x7fff
mov ebx, 0x7fff
jg 0x7034a88f
mov dword [esp + 0x1830], 0
fld st(0)
fistp dword [esp + 0x1830]
cmp dword [esp + 0x1830], 0xffff8000
mov ebx, 0xffff8000
jl 0x7034a893
mov dword [esp + 0x1830], 0
fistp dword [esp + 0x1830]
movzx ebx, word [esp + 0x1830]
jmp 0x7034a895
fstp st(0)
jmp 0x7034a895
fstp st(0)
mov word [ecx + eax*2], bx
sub eax, 1
cmp eax, 0xffffffff
jne 0x7034a824
lea ebx, [esp + 0x74]
xor eax, eax
mov dword [ebx + eax], 0
add eax, 4
cmp eax, 0x18
jb 0x7034a8a7
lea edi, [esp + 0x760]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.70350040
add esi, 0x9f
lea eax, [esp + 0x9e0]
js 0x70349a60
fild word [edi + esi*2]
fstp dword [eax + esi*4]
sub esi, 1
cmp esi, 0xffffffff
jne 0x7034a8e4
jmp 0x70349a60
mov dword [esp + 0x2c], 0x708b6d20
mov ebp, 0xb
mov dword [esp + 0x20], 3
jmp 0x70349f24
cmp ecx, edx
cmovge edx, ecx
mov dword [esp + 0x2c], edx
jmp 0x7034a1cf
mov eax, dword [esp + 0x2db4]
mov dword [esp + 0x48], 0x708b6c80
mov dword [esp + 0x44], 0x22
movsx ebp, byte [eax + 0x708b6c60]
jmp 0x7034a4ef
mov eax, dword [esp + 0x2db4]
mov dword [esp + 0x54], 0x22
lea eax, [eax*8 + 0x708b6c63]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x2db4]
movsx eax, byte [eax + 0x708b6c60]
mov dword [esp + 0x48], eax
mov eax, 0x708b6c80
jmp 0x7034a3ac
mov eax, dword [esp + 0x2db4]
mov ebp, 0x708b6c80
mov dword [esp + 0x54], 0x22
lea eax, [eax*8 + 0x708b6c63]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x2db4]
movsx eax, byte [eax + 0x708b6c60]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x30]
shl eax, 4
add eax, dword [esp + 0x2d90]
mov dword [esp + 0x3c], eax
jmp 0x7034a251
fstp st(0)
mov eax, dword [esp + 0x2d94]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
jmp 0x7034a7d8
mov eax, edx
sub eax, 1
lea ecx, [esp + 0x22d0]
js 0x7034aa83
mov edi, dword [esp + 0x2d90]
mov dword [esp + 0x1830], 0
fld dword [edi + eax*4]
fld st(0)
fistp dword [esp + 0x1830]
cmp dword [esp + 0x1830], 0x7fff
mov ebx, 0x7fff
jg 0x7034aa6d
mov dword [esp + 0x1830], 0
fld st(0)
fistp dword [esp + 0x1830]
cmp dword [esp + 0x1830], 0xffff8000
mov ebx, 0xffff8000
jl 0x7034aa71
mov dword [esp + 0x1830], 0
fistp dword [esp + 0x1830]
movzx ebx, word [esp + 0x1830]
jmp 0x7034aa73
fstp st(0)
jmp 0x7034aa73
fstp st(0)
mov word [ecx + eax*2], bx
sub eax, 1
cmp eax, 0xffffffff
jne 0x7034a9fb
lea ebx, [esp + 0x74]
lea edi, [esp + 0x760]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
call fcn.7034fdb0
add esi, 0x9f
lea eax, [esp + 0x9e0]
js 0x70349a60
fild word [edi + esi*2]
fstp dword [eax + esi*4]
sub esi, 1
cmp esi, 0xffffffff
jne 0x7034aac5
jmp 0x70349a60
fstp st(0)
xor esi, esi
xor edi, edi
jmp 0x7034a661
fild dword [esp + 0x2c]
fdivr dword [0x708b6ad0]
jmp 0x7034a4da