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

Disassembly:
push 0xffffffffffffffff
push 0x101539d0
mov eax, dword fs:[0]
push eax
sub esp, 0xf4
mov eax, dword [0x101a42b4]
xor eax, esp
mov dword [esp + 0xf0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101a42b4]
xor eax, esp
push eax
lea eax, [esp + 0x108]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov esi, dword [esp + 0x130]
xor ebx, ebx
mov dword [esp + 0x80], ebx
mov edi, 0xf
mov dword [esp + 0x90], ebp
mov dword [esp + 0xac], edi
mov dword [esp + 0xa8], ebx
mov byte [esp + 0x98], bl
mov dword [esp + 0x110], 1
test dl, dl
fld qword [0x10159790]
fld qword [esp + 0x134]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x1007d36d
fld1
fcompp
fnstsw ax
test ah, 5
jnp 0x1007d36f
cmp dword [esp + 0x13c], 3
ja 0x1007d32a
test bl, bl
test dl, dl
mov dword [esp + 0x14], ebx
mov ch, ch
push ebx
pop ebx
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0x13c]
lea eax, [esp + 0x5c]
push eax
mov eax, dword [esp + 0x13c]
push edx
mov edx, dword [esp + 0x13c]
push eax
mov eax, dword [esp + 0x13c]
push edx
push eax
push ecx
call fcn.1003cc50
add esp, 0x28
test eax, eax
jne 0x1007c434
lea ecx, [esp + 0x94]
push ecx
mov ecx, ebp
call fcn.1000a2b0
mov dword [esp + 0x80], 1
mov byte [esp + 0x110], bl
lea ecx, [esp + 0x94]
call fcn.10006710
jmp 0x1007d3ce
fld1
fsub qword [esp + 0x134]
fnstcw word [esp + 0x48]
fmul qword [0x10159740]
movzx eax, word [esp + 0x48]
or eax, 0xc00
mov dword [esp + 0xf0], eax
fldcw word [esp + 0xf0]
fistp qword [esp + 0xf0]
mov edx, dword [esp + 0xf0]
mov dword [esp + 0xfc], edx
fldcw word [esp + 0x48]
test ah, ah
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov byte [esp + 0x110], 2
push ecx
pop ecx
test bl, bl
lea ecx, [esp + 0x34]
call fcn.100e610c
mov byte [esp + 0x110], 3
push eax
pop eax
push ebx
lea eax, [esp + 0x38]
push eax
push 0x101593cc
push esi
call fcn.100436a0
add esp, 0x10
mov edi, eax
mov cl, cl
xor esi, esi
cmp edi, ebx
jle 0x1007c5a5
mov bl, 0x64
lea esp, [esp]
mov edx, edx
mov byte [esp + 0xf0], 0x25
mov byte [esp + 0xf1], bl
mov byte [esp + 0xf2], 0x7c
mov byte [esp + 0xf3], 0x25
mov byte [esp + 0xf4], bl
mov byte [esp + 0xf5], 0x7c
mov byte [esp + 0xf6], 0x25
mov byte [esp + 0xf7], bl
mov byte [esp + 0xf8], 0
xchg ebx, eax
xchg ebx, eax
test esi, esi
jl 0x1007c5fc
cmp esi, dword [esp + 0x3c]
jge 0x1007c5fc
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + esi*4]
lea edx, [esp + 0x8c]
push edx
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x8c]
push edx
lea ecx, [esp + 0xfc]
push ecx
push eax
call fcn.100f6765
add esp, 0x14
mov al, al
cmp dword [esp + 0x8c], 0
je 0x1007c576
mov dword [esp + 0x8c], 0
mov al, al
jmp 0x1007c583
mov dword [esp + 0x8c], 1
test ebx, ebx
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x28]
call fcn.10068e00
test edi, edi
add esi, 1
cmp esi, edi
jl 0x1007c4d0
xor ebx, ebx
cmp edi, ebx
jne 0x1007c601
lea eax, [esp + 0x94]
push eax
mov ecx, ebp
call fcn.1000a2b0
mov dword [esp + 0x80], 1
mov byte [esp + 0x110], 2
lea ecx, [esp + 0x34]
call fcn.100e6454
mov byte [esp + 0x110], 1
lea ecx, [esp + 0x24]
call fcn.1000a510
mov byte [esp + 0x110], 0
lea ecx, [esp + 0x94]
call fcn.10006710
jmp 0x1007d3ce
jmp fcn.100e2ea6
push 0x2ee6
call fcn.100f3e38
mov edi, eax
add esp, 4
mov dword [esp + 0xf0], edi
xchg ebx, eax
xchg ebx, eax
push 0x1772
call fcn.100f3e38
mov esi, eax
add esp, 4
mov dword [esp + 0x78], esi
push ecx
pop ecx
push 0x1772
call fcn.100f3e38
add esp, 4
mov dword [esp + 0x74], eax
mov edi, edi
cmp edi, ebx
je 0x1007d2fb
cmp esi, ebx
je 0x1007d2f0
cmp eax, ebx
je 0x1007d2f0
push 0x2ee6
push ebx
push edi
call fcn.100f4ed0
add esp, 0xc
mov cl, cl
push 0x1772
push ebx
push esi
call fcn.100f4ed0
add esp, 0xc
nop
mov ecx, dword [esp + 0x74]
push 0x1772
push ebx
push ecx
call fcn.100f4ed0
add esp, 0xc
mov ch, ch
mov eax, dword [esp + 0x13c]
cmp eax, ebx
jne 0x1007c96e
xor edx, edx
cmp dword [esp + 0x54], ebx
mov dword [esp + 0x48], edx
jle 0x1007d1de
mov eax, dword [esp + 0x50]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x7c], ecx
jle 0x1007c958
mov eax, edx
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
lea eax, [eax + ecx*4]
mov bh, bh
mov byte [eax + 3], 0
test eax, eax
mov esi, dword [esp + 0x54]
mov eax, dword [eax]
push esi
mov esi, dword [esp + 0x54]
push esi
mov esi, dword [esp + 0x104]
push edx
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x28]
push ecx
push edx
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.1004f690
add esp, 0x20
test eax, eax
je 0x1007c93d
xor eax, eax
mov byte [esp + 0xb0], 0
mov dword [esp + 0xb1], eax
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov word [esp + 0xcd], ax
mov byte [esp + 0xcf], al
mov dl, dl
mov byte [esp + 0xd0], al
mov dword [esp + 0xd1], eax
mov dword [esp + 0xd5], eax
mov dword [esp + 0xd9], eax
mov dword [esp + 0xdd], eax
mov dword [esp + 0xe1], eax
mov dword [esp + 0xe5], eax
mov dword [esp + 0xe9], eax
mov word [esp + 0xed], ax
mov byte [esp + 0xef], al
push ebx
pop ebx
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x7c]
lea edi, [eax + edx]
mov ebp, ebp
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
lea ebp, [edx + ecx]
mov cl, cl
mov eax, dword [esp + 0x78]
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1007c7c1
sub eax, ecx
mov esi, eax
mov ebx, ebx
mov eax, dword [esp + 0x74]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007c7d7
sub eax, edx
mov ebx, eax
mov bl, bl
push edi
lea eax, [esp + 0xb4]
push 0x101594b0
push eax
call fcn.100f5cb0
add esp, 0xc
test eax, 0x48f1
push ebp
lea ecx, [esp + 0xd4]
push 0x101594b0
push ecx
call fcn.100f5cb0
add esp, 0xc
push eax
pop eax
test esi, esi
lea eax, [esp + 0xb0]
jne 0x1007c840
mov edx, dword [esp + 0x78]
mov ecx, eax
sub edx, ecx
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x1007c830
mov ch, ch
jmp 0x1007c8af
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007c843
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x1007c8af
mov ebp, dword [esp + 0x78]
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1007c860
mov dx, word [0x101593cc]
mov word [edi], dx
test al, al
lea eax, [esp + 0xb0]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1007c880
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1007c892
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test eax, 0x64a5
test ebx, ebx
lea eax, [esp + 0xd0]
jne 0x1007c8d2
mov edx, dword [esp + 0x74]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x1007c8c2
test ecx, ecx
jmp 0x1007c93d
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007c8d5
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x1007c93d
mov ebx, dword [esp + 0x74]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1007c8f2
mov dx, word [0x101593cc]
mov word [edi], dx
mov al, al
lea eax, [esp + 0xd0]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1007c911
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1007c923
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ch, ch
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
add ecx, 1
cmp ecx, eax
mov dword [esp + 0x7c], ecx
jl 0x1007c6c0
add edx, 1
cmp edx, dword [esp + 0x54]
mov dword [esp + 0x48], edx
jl 0x1007c6b2
jmp 0x1007d1de
cmp eax, 1
jne 0x1007cc46
mov eax, dword [esp + 0x54]
add eax, 0xffffffff
cmp eax, ebx
mov dword [esp + 0x48], eax
jl 0x1007d1de
mov eax, dword [esp + 0x50]
mov edi, edi
xor edi, edi
test eax, eax
mov dword [esp + 0x7c], edi
jle 0x1007cc36
mov edi, edi
mov ebp, dword [esp + 0x48]
mov eax, ebp
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
lea eax, [eax + edi*4]
test ah, ah
mov byte [eax + 3], 0
mov edi, edi
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov eax, dword [eax]
mov esi, dword [esp + 0xfc]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x1c]
push ebp
push edi
push ecx
push edx
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.1004f690
add esp, 0x20
test eax, eax
je 0x1007cc1f
xor eax, eax
mov byte [esp + 0xd0], 0
mov dword [esp + 0xd1], eax
mov dword [esp + 0xd5], eax
mov dword [esp + 0xd9], eax
mov dword [esp + 0xdd], eax
mov dword [esp + 0xe1], eax
mov dword [esp + 0xe5], eax
mov dword [esp + 0xe9], eax
mov word [esp + 0xed], ax
mov byte [esp + 0xef], al
mov cl, cl
mov byte [esp + 0xb0], al
mov dword [esp + 0xb1], eax
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov word [esp + 0xcd], ax
mov byte [esp + 0xcf], al
xchg ebx, eax
xchg ebx, eax
mov edx, dword [esp + 0x20]
add edi, edx
xchg ebx, eax
xchg ebx, eax
mov eax, dword [esp + 0x1c]
add ebp, eax
mov edx, edx
mov eax, dword [esp + 0x78]
lea ecx, [eax + 1]
jmp 0x1007caa0
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1007caa0
sub eax, ecx
mov esi, eax
push ebx
pop ebx
mov eax, dword [esp + 0x74]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007cab6
sub eax, edx
mov ebx, eax
mov dh, dh
push edi
lea ecx, [esp + 0xd4]
push 0x101594b0
push ecx
call fcn.100f5cb0
add esp, 0xc
test bl, bl
push ebp
lea edx, [esp + 0xb4]
push 0x101594b0
push edx
call fcn.100f5cb0
add esp, 0xc
test cl, cl
test esi, esi
lea eax, [esp + 0xd0]
jne 0x1007cb18
mov edx, dword [esp + 0x78]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x1007cb08
mov dl, dl
jmp 0x1007cb8c
lea edx, [eax + 1]
jmp 0x1007cb20
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007cb20
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x1007cb8c
mov ebp, dword [esp + 0x78]
mov edi, ebp
add edi, 0xffffffff
lea ecx, [ecx]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1007cb40
mov dx, word [0x101593cc]
mov word [edi], dx
xchg ebx, eax
xchg ebx, eax
lea eax, [esp + 0xd0]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1007cb60
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1007cb72
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test dl, dl
test ebx, ebx
lea eax, [esp + 0xb0]
jne 0x1007cbb0
mov edx, dword [esp + 0x74]
mov ecx, eax
sub edx, ecx
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x1007cba0
mov bh, bh
jmp 0x1007cc1f
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007cbb3
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x1007cc1f
mov ebx, dword [esp + 0x74]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1007cbd0
mov dx, word [0x101593cc]
mov word [edi], dx
xchg ebx, eax
xchg ebx, eax
lea eax, [esp + 0xb0]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1007cbf0
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1007cc02
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test eax, 0x1fcc
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x50]
add edi, 1
cmp edi, eax
mov dword [esp + 0x7c], edi
jl 0x1007c9a0
sub dword [esp + 0x48], 1
jns 0x1007c990
jmp 0x1007d1de
cmp eax, 2
jne 0x1007cf17
xor ecx, ecx
cmp dword [esp + 0x54], ebx
mov dword [esp + 0x48], ecx
jle 0x1007d1de
nop
mov edx, dword [esp + 0x50]
add edx, 0xffffffff
mov dword [esp + 0x7c], edx
js 0x1007cf01
mov eax, ecx
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
lea eax, [eax + edx*4]
test ch, ch
mov byte [eax + 3], 0
test dl, dl
mov esi, dword [esp + 0x54]
mov eax, dword [eax]
push esi
mov esi, dword [esp + 0x54]
push esi
mov esi, dword [esp + 0x104]
push ecx
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push ecx
push edx
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.1004f690
add esp, 0x20
test eax, eax
je 0x1007ceec
xor eax, eax
mov byte [esp + 0xd0], 0
mov dword [esp + 0xd1], eax
mov dword [esp + 0xd5], eax
mov dword [esp + 0xd9], eax
mov dword [esp + 0xdd], eax
mov dword [esp + 0xe1], eax
mov dword [esp + 0xe5], eax
mov dword [esp + 0xe9], eax
mov word [esp + 0xed], ax
mov byte [esp + 0xef], al
mov ecx, ecx
mov byte [esp + 0xb0], al
mov dword [esp + 0xb1], eax
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov word [esp + 0xcd], ax
mov byte [esp + 0xcf], al
test esi, esi
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x7c]
lea edi, [eax + edx]
mov bl, bl
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
lea ebp, [edx + ecx]
nop
mov eax, dword [esp + 0x78]
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1007cd71
sub eax, ecx
mov esi, eax
xchg ebx, eax
xchg ebx, eax
mov eax, dword [esp + 0x74]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007cd87
sub eax, edx
mov ebx, eax
mov al, al
push edi
lea eax, [esp + 0xd4]
push 0x101594b0
push eax
call fcn.100f5cb0
add esp, 0xc
xchg ebx, eax
xchg ebx, eax
push ebp
lea ecx, [esp + 0xb4]
push 0x101594b0
push ecx
call fcn.100f5cb0
add esp, 0xc
test edi, edi
test esi, esi
lea eax, [esp + 0xd0]
jne 0x1007cdf0
mov edx, dword [esp + 0x78]
mov ecx, eax
sub edx, ecx
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1007cde0
test eax, eax
jmp 0x1007ce5e
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007cdf3
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x1007ce5e
mov ebp, dword [esp + 0x78]
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1007ce10
mov dx, word [0x101593cc]
mov word [edi], dx
test eax, 0x16a0
lea eax, [esp + 0xd0]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1007ce32
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1007ce44
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ah, ah
test ebx, ebx
lea eax, [esp + 0xb0]
jne 0x1007ce81
mov edx, dword [esp + 0x74]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1007ce71
test esi, esi
jmp 0x1007ceec
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007ce84
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x1007ceec
mov ebx, dword [esp + 0x74]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1007cea1
mov dx, word [0x101593cc]
mov word [edi], dx
mov edi, edi
lea eax, [esp + 0xb0]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1007cec0
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1007ced2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebx, ebx
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x48]
sub edx, 1
mov dword [esp + 0x7c], edx
jns 0x1007cc71
add ecx, 1
cmp ecx, dword [esp + 0x54]
mov dword [esp + 0x48], ecx
jl 0x1007cc60
jmp 0x1007d1de
cmp eax, 3
jne 0x1007d1de
mov ebp, dword [esp + 0x54]
add ebp, 0xffffffff
mov dword [esp + 0x48], ebp
js 0x1007d1de
mov edi, dword [esp + 0x50]
add edi, 0xffffffff
mov dword [esp + 0x7c], edi
js 0x1007d1d1
mov eax, ebp
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
lea eax, [eax + edi*4]
test eax, 0x3db5
mov byte [eax + 3], 0
test ecx, ecx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov eax, dword [eax]
mov esi, dword [esp + 0xfc]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x1c]
push ebp
push edi
push ecx
push edx
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.1004f690
add esp, 0x20
test eax, eax
je 0x1007d1bc
xor eax, eax
mov byte [esp + 0xd0], 0
mov dword [esp + 0xd1], eax
mov dword [esp + 0xd5], eax
mov dword [esp + 0xd9], eax
mov dword [esp + 0xdd], eax
mov dword [esp + 0xe1], eax
mov dword [esp + 0xe5], eax
mov dword [esp + 0xe9], eax
mov word [esp + 0xed], ax
mov byte [esp + 0xef], al
push ecx
pop ecx
mov byte [esp + 0xb0], al
mov dword [esp + 0xb1], eax
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov word [esp + 0xcd], ax
mov byte [esp + 0xcf], al
mov dl, dl
mov edx, dword [esp + 0x20]
add edi, edx
test eax, eax
mov eax, dword [esp + 0x1c]
add ebp, eax
test esi, esi
mov eax, dword [esp + 0x78]
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1007d040
sub eax, ecx
mov esi, eax
mov bh, bh
mov eax, dword [esp + 0x74]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007d056
sub eax, edx
mov ebx, eax
test ecx, ecx
push edi
lea ecx, [esp + 0xd4]
push 0x101594b0
push ecx
call fcn.100f5cb0
add esp, 0xc
mov eax, eax
push ebp
lea edx, [esp + 0xb4]
push 0x101594b0
push edx
call fcn.100f5cb0
add esp, 0xc
test cl, cl
test esi, esi
lea eax, [esp + 0xd0]
jne 0x1007d0b8
mov edx, dword [esp + 0x78]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1007d0a8
mov esi, esi
jmp 0x1007d12c
lea edx, [eax + 1]
jmp 0x1007d0c0
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007d0c0
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x1007d12c
mov ebp, dword [esp + 0x78]
mov edi, ebp
add edi, 0xffffffff
lea ecx, [ecx]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1007d0e0
mov dx, word [0x101593cc]
mov word [edi], dx
mov ebx, ebx
lea eax, [esp + 0xd0]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1007d100
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1007d112
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ebx
pop ebx
test ebx, ebx
lea eax, [esp + 0xb0]
jne 0x1007d150
mov edx, dword [esp + 0x74]
mov ecx, eax
sub edx, ecx
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1007d140
mov ebp, ebp
jmp 0x1007d1bc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007d153
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x1007d1bc
mov ebx, dword [esp + 0x74]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1007d170
mov dx, word [0x101593cc]
mov word [edi], dx
mov cl, cl
lea eax, [esp + 0xb0]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1007d190
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1007d1a2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dl, dl
mov edi, dword [esp + 0x7c]
mov ebp, dword [esp + 0x48]
sub edi, 1
mov dword [esp + 0x7c], edi
jns 0x1007cf42
sub ebp, 1
mov dword [esp + 0x48], ebp
jns 0x1007cf31
mov edi, dword [esp + 0x78]
cmp byte [edi], 0
je 0x1007d24a
mov al, 0x73
mov byte [esp + 0xfc], 0x25
mov byte [esp + 0xfd], al
mov byte [esp + 0xfe], 0x7c
mov byte [esp + 0xff], 0x25
mov byte [esp + 0x100], al
mov byte [esp + 0x101], 0
test ch, ch
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0xf0]
push eax
push edi
lea ecx, [esp + 0x104]
push ecx
push esi
call fcn.100f5cb0
add esp, 0x10
mov ah, ah
push esi
lea ecx, [esp + 0x98]
call fcn.1000d5a0
test bh, bh
jmp 0x1007d253
mov ebp, ebp
mov esi, dword [esp + 0xf0]
push esi
call fcn.100f3efb
add esp, 4
push eax
pop eax
push edi
call fcn.100f3efb
add esp, 4
test edx, edx
mov edx, dword [esp + 0x74]
push edx
call fcn.100f3efb
add esp, 4
test esi, esi
mov eax, dword [esp + 0x14]
push eax
call fcn.100f3efb
add esp, 4
mov dword [esp + 0x14], 0
test eax, 0x2aaf
mov esi, dword [esp + 0x90]
lea ecx, [esp + 0x94]
push ecx
mov ecx, esi
call fcn.1000a2b0
mov dword [esp + 0x80], 1
mov byte [esp + 0x110], 2
lea ecx, [esp + 0x34]
call fcn.100e6454
mov byte [esp + 0x110], 1
lea ecx, [esp + 0x24]
call fcn.1000a510
mov byte [esp + 0x110], 0
lea ecx, [esp + 0x94]
call fcn.10006710
mov eax, esi
jmp 0x1007d3d0
push edi
call fcn.100f3efb
add esp, 4
mov ch, ch
cmp esi, ebx
je 0x1007d30a
push esi
call fcn.100f3efb
add esp, 4
mov bh, bh
mov eax, dword [esp + 0x74]
cmp eax, ebx
je 0x1007d31d
push eax
call fcn.100f3efb
add esp, 4
mov ch, ch
lea edx, [esp + 0x94]
push edx
jmp 0x1007c5af
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x9c]
mov dword [ebp + 0x18], edi
mov dword [ebp + 0x14], ebx
push eax
mov ecx, ebp
mov byte [ebp + 4], 0
call fcn.10009fd0
mov dword [esp + 0x80], 1
mov byte [esp + 0x110], 0
cmp dword [esp + 0xac], 0x10
jb 0x1007d3b8
mov ecx, dword [esp + 0x98]
push ecx
jmp 0x1007d3b0
fstp st(0)
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x9c]
mov dword [ebp + 0x18], edi
mov dword [ebp + 0x14], ebx
push edx
mov ecx, ebp
mov byte [ebp + 4], 0
call fcn.10009fd0
mov dword [esp + 0x80], 1
mov byte [esp + 0x110], 0
cmp dword [esp + 0xac], 0x10
jb 0x1007d3b8
mov eax, dword [esp + 0x98]
push eax
call fcn.100e2dad
add esp, 4
mov byte [esp + 0x98], 0
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], edi
mov eax, ebp
mov ecx, dword [esp + 0x108]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xf0]
xor ecx, esp
call fcn.100f43d6
add esp, 0x100
ret