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

Disassembly:
push 0xffffffffffffffff
push 0x10153da4
mov eax, dword fs:[0]
push eax
sub esp, 0xf0
mov eax, dword [0x101a42b4]
xor eax, esp
mov dword [esp + 0xec], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101a42b4]
xor eax, esp
push eax
lea eax, [esp + 0x104]
mov dword fs:[0], eax
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x114]
mov esi, dword [esp + 0x128]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x13c]
xor ebx, ebx
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xd8], ebx
mov ah, ah
mov dword [ecx], 0xffffffff
mov dword [eax], 0xffffffff
test ah, ah
fld qword [0x10159790]
fld qword [esp + 0x130]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x10081ecf
fld1
fcompp
fnstsw ax
test ah, 5
jnp 0x10081ed1
cmp dword [esp + 0x138], 3
ja 0x10081ed1
test cl, cl
test eax, eax
mov dword [esp + 0x14], ebx
test edi, edi
mov ebx, ebx
lea ecx, [esp + 0x20]
push ecx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x134]
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x134]
push eax
mov eax, dword [esp + 0x134]
push ecx
mov ecx, dword [esp + 0x134]
push eax
push ecx
push edx
call fcn.1003cc50
add esp, 0x28
test eax, eax
je 0x10081ed1
fld1
fsub qword [esp + 0x130]
fnstcw word [esp + 0x24]
movzx eax, word [esp + 0x24]
fmul qword [0x10159740]
or eax, 0xc00
mov dword [esp + 0xe8], eax
fldcw word [esp + 0xe8]
fistp qword [esp + 0xf8]
mov ebp, dword [esp + 0xf8]
fldcw word [esp + 0x24]
mov bh, bh
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x10c], ebx
mov ebx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov byte [esp + 0x10c], 1
push eax
pop eax
mov bh, bh
lea ecx, [esp + 0x5c]
call fcn.100e610c
mov byte [esp + 0x10c], 2
push ebx
pop ebx
push ebx
lea edx, [esp + 0x60]
push edx
push 0x101593b0
push esi
call fcn.100436a0
add esp, 0x10
mov edi, eax
mov bl, bl
xor esi, esi
cmp edi, ebx
jle 0x10081811
nop
xchg ebx, eax
xchg ebx, eax
mov dword [esp + 0x24], ebx
test bh, bh
mov byte [esp + 0xe8], 0x25
mov byte [esp + 0xe9], 0x78
mov byte [esp + 0xea], 0x2d
mov byte [esp + 0xeb], 0x25
mov byte [esp + 0xec], 0x78
mov byte [esp + 0xed], bl
mov bh, bh
cmp esi, ebx
jl 0x100818f6
cmp esi, dword [esp + 0x64]
jge 0x100818f6
mov eax, dword [esp + 0x60]
mov eax, dword [eax + esi*4]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x9c]
push edx
lea ecx, [esp + 0xf0]
push ecx
push eax
call fcn.100f6765
add esp, 0x10
mov esi, esi
movzx edx, byte [esp + 0x26]
add edx, ebp
mov dword [esp + 0x9c], edx
test eax, eax
movzx eax, byte [esp + 0x25]
add eax, ebp
mov dword [esp + 0xa0], eax
mov edi, edi
mov ecx, dword [esp + 0x24]
and ecx, 0xff
add ecx, ebp
mov dword [esp + 0xa4], ecx
test al, al
mov dword [esp + 0xa8], ebx
mov edi, edi
lea edx, [esp + 0x98]
push edx
lea ecx, [esp + 0x3c]
call fcn.10068b70
test eax, 0x15dc
add esi, 1
cmp esi, edi
jl 0x10081740
lea ecx, [esp + 0x48]
call fcn.100e610c
mov byte [esp + 0x10c], 3
test ch, ch
mov ecx, dword [esp + 0xdc]
push ebx
lea eax, [esp + 0x4c]
push eax
push 0x101593cc
push ecx
call fcn.100436a0
add esp, 0x10
mov dword [esp + 0xdc], eax
mov edi, edi
xor esi, esi
cmp eax, ebx
mov dword [esp + 0xe8], esi
jle 0x10081b33
lea esp, [esp]
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
mov byte [esp + 0x10c], 5
test eax, 0x2fd3
lea ecx, [esp + 0xac]
call fcn.100e610c
mov byte [esp + 0x10c], 6
test bh, bh
cmp esi, ebx
jl 0x100818f6
cmp esi, dword [esp + 0x50]
jge 0x100818f6
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + esi*4]
push ebx
lea ecx, [esp + 0xb0]
push ecx
push 0x101593b0
push eax
call fcn.100436a0
add esp, 0x10
mov edi, eax
test esi, esi
cmp edi, 3
jge 0x100818fb
mov byte [esp + 0x10c], 5
lea ecx, [esp + 0xac]
call fcn.100e6454
mov byte [esp + 0x10c], 3
lea ecx, [esp + 0xc0]
call fcn.1005c5e0
jmp 0x10081b1c
jmp fcn.100e2ea6
cmp dword [esp + 0xb4], ebx
jle 0x100818f6
mov edx, dword [esp + 0xb0]
mov eax, dword [edx]
lea ecx, [esp + 0xd0]
push ecx
push 0x101594b0
push eax
call fcn.100f6765
add esp, 0xc
test edx, edx
cmp dword [esp + 0xb4], 1
jle 0x100818f6
mov edx, dword [esp + 0xb0]
mov eax, dword [edx + 4]
lea ecx, [esp + 0xd4]
push ecx
push 0x101594b0
push eax
call fcn.100f6765
add esp, 0xc
test bh, bh
mov esi, 2
cmp edi, esi
jle 0x10081ada
mov edi, edi
mov ecx, ecx
mov dword [esp + 0x24], ebx
mov cl, cl
cmp esi, ebx
jl 0x100818f6
cmp esi, dword [esp + 0xb4]
jge 0x100818f6
mov edx, dword [esp + 0xb0]
mov eax, dword [edx + esi*4]
mov eax, eax
cmp byte [eax], 0x2d
jne 0x10081995
mov dword [esp + 0xa8], 1
mov al, al
jmp 0x1008199e
mov dword [esp + 0xa8], ebx
mov edx, edx
cmp dword [esp + 0xa8], ebx
je 0x10081a19
mov byte [esp + 0xf8], 0x2d
mov byte [esp + 0xf9], 0x25
mov byte [esp + 0xfa], 0x78
mov byte [esp + 0xfb], 0x2d
mov byte [esp + 0xfc], 0x25
mov byte [esp + 0xfd], 0x78
mov byte [esp + 0xfe], bl
test dh, dh
cmp esi, dword [esp + 0xb4]
jge 0x100818f6
mov eax, dword [esp + 0xb0]
mov eax, dword [eax + esi*4]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x9c]
push edx
lea ecx, [esp + 0x100]
push ecx
push eax
call fcn.100f6765
add esp, 0x10
test ecx, ecx
jmp 0x10081a81
mov byte [esp + 0xf0], 0x25
mov byte [esp + 0xf1], 0x78
mov byte [esp + 0xf2], 0x2d
mov byte [esp + 0xf3], 0x25
mov byte [esp + 0xf4], 0x78
mov byte [esp + 0xf5], bl
test dl, dl
cmp esi, dword [esp + 0xb4]
jge 0x100818f6
mov edx, dword [esp + 0xb0]
mov eax, dword [edx + esi*4]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x9c]
push edx
lea ecx, [esp + 0xf8]
push ecx
push eax
call fcn.100f6765
add esp, 0x10
mov esi, esi
movzx edx, byte [esp + 0x26]
add edx, ebp
mov dword [esp + 0x9c], edx
test al, al
movzx eax, byte [esp + 0x25]
add eax, ebp
mov dword [esp + 0xa0], eax
test eax, 0x22c8
mov ecx, dword [esp + 0x24]
and ecx, 0xff
add ecx, ebp
mov dword [esp + 0xa4], ecx
test bl, bl
lea edx, [esp + 0x98]
push edx
lea ecx, [esp + 0xc4]
call fcn.10068b70
mov ecx, ecx
add esi, 1
cmp esi, edi
jl 0x10081960
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0x2c]
call fcn.100814e0
push eax
pop eax
mov byte [esp + 0x10c], 5
lea ecx, [esp + 0xac]
call fcn.100e6454
mov byte [esp + 0x10c], 3
lea ecx, [esp + 0xc0]
call fcn.1005c5e0
mov esi, dword [esp + 0xe8]
add esi, 1
cmp esi, dword [esp + 0xdc]
mov dword [esp + 0xe8], esi
jl 0x10081860
mov eax, dword [esp + 0x138]
cmp eax, ebx
jne 0x10081bf9
xor ebp, ebp
cmp dword [esp + 0x78], ebx
jle 0x10081e29
mov eax, dword [esp + 0x74]
xor esi, esi
cmp eax, ebx
jle 0x10081bb8
jmp 0x10081b60
mov ecx, ebp
imul ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x14]
lea eax, [ecx + esi*4]
nop
mov byte [eax + 3], bl
test al, al
mov edx, dword [eax]
push edx
lea edi, [esp + 0x3c]
call fcn.1004eda0
add esp, 4
test eax, eax
je 0x10081bad
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
push ecx
push ebp
push esi
push edx
push eax
lea edi, [esp + 0x40]
call fcn.1004f5e0
add esp, 0x18
test eax, eax
jne 0x10081bc6
mov eax, dword [esp + 0x74]
add esi, 1
cmp esi, eax
jl 0x10081b60
add ebp, 1
cmp ebp, dword [esp + 0x78]
jl 0x10081b52
jmp 0x10081e29
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xe4]
add esi, ecx
mov dword [edx], esi
test ch, ch
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xe0]
add ebp, eax
mov dword [ecx], ebp
nop
mov dword [esp + 0xd8], 1
mov edi, edi
jmp 0x10081e29
cmp eax, 1
jne 0x10081cb9
mov ebp, dword [esp + 0x78]
add ebp, 0xffffffff
cmp ebp, ebx
jl 0x10081e29
mov eax, dword [esp + 0x74]
xor esi, esi
cmp eax, ebx
jle 0x10081c78
jmp 0x10081c20
mov edx, ebp
imul edx, dword [esp + 0x18]
add edx, dword [esp + 0x14]
lea eax, [edx + esi*4]
test edx, edx
mov byte [eax + 3], bl
nop
mov eax, dword [eax]
push eax
lea edi, [esp + 0x3c]
call fcn.1004eda0
add esp, 4
test eax, eax
je 0x10081c6d
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x18]
push edx
push ebp
push esi
push eax
push ecx
lea edi, [esp + 0x40]
call fcn.1004f5e0
add esp, 0x18
test eax, eax
jne 0x10081c82
mov eax, dword [esp + 0x74]
add esi, 1
cmp esi, eax
jl 0x10081c20
sub ebp, 1
jns 0x10081c15
jmp 0x10081e29
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xe4]
add esi, edx
mov dword [eax], esi
test eax, 0x36d7
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xe0]
add ebp, ecx
mov dword [edx], ebp
mov dh, dh
mov dword [esp + 0xd8], 1
mov edx, edx
jmp 0x10081e29
cmp eax, 2
jne 0x10081d74
xor ebp, ebp
cmp dword [esp + 0x78], ebx
jle 0x10081e29
mov edi, edi
mov esi, dword [esp + 0x74]
add esi, 0xffffffff
cmp esi, ebx
jl 0x10081d33
jmp 0x10081ce0
mov eax, ebp
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
lea eax, [eax + esi*4]
mov edx, edx
mov byte [eax + 3], bl
mov dl, dl
mov ecx, dword [eax]
push ecx
lea edi, [esp + 0x3c]
call fcn.1004eda0
add esp, 4
test eax, eax
je 0x10081d2e
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x18]
push eax
push ebp
push esi
push ecx
push edx
lea edi, [esp + 0x40]
call fcn.1004f5e0
add esp, 0x18
test eax, eax
jne 0x10081d41
sub esi, 1
jns 0x10081ce0
add ebp, 1
cmp ebp, dword [esp + 0x78]
jl 0x10081cd0
jmp 0x10081e29
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xe4]
add esi, eax
mov dword [ecx], esi
nop
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0xe0]
add ebp, edx
mov dword [eax], ebp
test edi, edi
mov dword [esp + 0xd8], 1
test dh, dh
jmp 0x10081e29
cmp eax, 3
jne 0x10081e29
mov ebp, dword [esp + 0x78]
add ebp, 0xffffffff
cmp ebp, ebx
jl 0x10081e29
lea esp, [esp]
mov esi, dword [esp + 0x74]
add esi, 0xffffffff
cmp esi, ebx
jl 0x10081df3
jmp 0x10081da0
mov ecx, ebp
imul ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x14]
lea eax, [ecx + esi*4]
test ch, ch
mov byte [eax + 3], bl
push ecx
pop ecx
mov edx, dword [eax]
push edx
lea edi, [esp + 0x3c]
call fcn.1004eda0
add esp, 4
test eax, eax
je 0x10081dee
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
push ecx
push ebp
push esi
push edx
push eax
lea edi, [esp + 0x40]
call fcn.1004f5e0
add esp, 0x18
test eax, eax
jne 0x10081dfa
sub esi, 1
jns 0x10081da0
sub ebp, 1
jns 0x10081d90
jmp 0x10081e29
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xe4]
add esi, ecx
mov dword [edx], esi
mov dl, dl
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xe0]
add ebp, eax
mov dword [ecx], ebp
mov edi, edi
mov dword [esp + 0xd8], 1
push ecx
pop ecx
mov edx, dword [esp + 0x14]
push edx
call fcn.100f3efb
add esp, 4
mov dword [esp + 0x14], ebx
test esi, esi
mov byte [esp + 0x10c], 2
lea ecx, [esp + 0x48]
call fcn.100e6454
mov byte [esp + 0x10c], 1
lea ecx, [esp + 0x5c]
call fcn.100e6454
mov byte [esp + 0x10c], bl
mov eax, dword [esp + 0x2c]
cmp eax, ebx
je 0x10081e92
mov ecx, dword [esp + 0xdc]
push ecx
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x2c]
push edx
push ecx
push eax
call fcn.1007e8a0
mov edx, dword [esp + 0x3c]
push edx
call fcn.100e2dad
add esp, 0x14
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x10c], 0xffffffff
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x10081eba
push eax
call fcn.100e2dad
add esp, 4
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
jmp 0x10081ed3
fstp st(0)
xor eax, eax
mov ecx, dword [esp + 0x104]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xec]
xor ecx, esp
call fcn.100f43d6
add esp, 0xfc
ret