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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [ebp + 8]
xor edx, edx
push esi
mov esi, ecx
mov dword [ebp - 8], edx
xor ecx, ecx
mov eax, dword [esi + 0x5c]
shl eax, 2
mov dword [ebx + 0x58], eax
mov eax, dword [ebx + 0x30]
cmp eax, 0x1f
sete cl
inc ecx
cmp dword [esi + 0x78], edx
je 0x1015f41e
cmp eax, 0x1a
je 0x1015f3fc
cmp eax, 0x19
je 0x1015f3fc
cmp eax, 0x1c
je 0x1015f3fc
cmp eax, 0x1e
je 0x1015f3fc
cmp eax, 0x14
je 0x1015f3e4
cmp eax, 0x15
je 0x1015f3e4
cmp eax, 0x16
je 0x1015f3e4
cmp eax, 0x17
je 0x1015f3e4
cmp eax, 0x18
jne 0x1015f41e
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x1015f41e
cmp dword [eax + 0x10], edx
jne 0x1015f41e
push 0x1002fed8
push 0x7ea
jmp 0x1015f406
push 0x1002fe30
push 0x7e9
lea eax, [ebx + 0x10]
push eax
push dword [esi]
call fcn.1013911e
add esp, 0x10
mov eax, 0x80004005
jmp 0x1015fb33
push edi
mov edi, dword [ebx + 0x3c]
mov dword [ebp - 4], ecx
test edi, edi
je 0x1015f4e2
cmp dword [edi + 4], 0x13
mov dword [ebp - 4], ecx
jne 0x1015f4e2
lea eax, [ecx + 1]
mov dword [ebp - 4], eax
lea edx, [ebx + 0x10]
xor eax, eax
cmp dword [edi + 0x10], 0xffffffff
sete al
cmp dword [edi + 0x14], 0
mov dword [ebp - 8], eax
je 0x1015f474
push 0x1002fe98
push 0x7de
push edx
push dword [esi]
call fcn.1013911e
add esp, 0x10
mov dword [esi + 0x4c], 1
lea edx, [ebx + 0x10]
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x1015f4e2
mov eax, dword [esi + 0x38]
sub eax, 4
cmp eax, 1
ja 0x1015f4c0
cmp dword [ecx + 0x10], 0xffffffff
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
jne 0x1015f499
mov dword [ebp - 8], 1
cmp dword [ecx + 0x28], 0
je 0x1015f4bb
push 0x1002ff20
push 0x7d9
push edx
push dword [esi]
call fcn.1013911e
add esp, 0x10
mov dword [esi + 0x4c], 1
inc dword [ebp - 4]
jmp 0x1015f4e2
push 0x1002ff70
push 0x7d8
push edx
push dword [esi]
call fcn.1013911e
mov edx, dword [ebp - 8]
add esp, 0x10
mov dword [esi + 0x4c], 1
mov dword [ebp - 8], edx
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x1015f595
cmp dword [eax + 4], 0x13
jne 0x1015f595
mov eax, dword [esi + 0x38]
test eax, eax
js 0x1015f503
cmp eax, 1
jle 0x1015f50b
add eax, 0xfffffffa
cmp eax, 4
ja 0x1015f52c
push 0x1002fff8
push 0x7e5
lea edi, [ebx + 0x10]
push edi
push dword [esi]
call fcn.1013911e
add esp, 0x10
mov dword [esi + 0x4c], 1
jmp 0x1015f52f
lea edi, [ebx + 0x10]
mov eax, dword [ebx + 0x40]
inc dword [ebp - 4]
mov dword [ebp - 0x10], eax
cmp dword [eax + 0x10], 0xffffffff
jne 0x1015f545
mov dword [ebp - 8], 1
cmp dword [eax + 0x14], 0
je 0x1015f573
cmp dword [eax + 0x14], 0xd000000
je 0x1015f573
push 0x1002ffc8
push 0x7e3
push edi
push dword [esi]
call fcn.1013911e
mov eax, dword [ebp - 0x10]
add esp, 0x10
mov dword [esi + 0x4c], 1
cmp dword [eax + 0x28], 0
je 0x1015f595
push 0x10030060
push 0x7e4
push edi
push dword [esi]
call fcn.1013911e
add esp, 0x10
mov dword [esi + 0x4c], 1
lea eax, [ebx + 0x44]
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov edi, eax
mov dword [ebp - 0xc], eax
mov eax, dword [edi]
test eax, eax
je 0x1015f627
mov edx, dword [ebp - 4]
inc edx
cmp dword [ebx + 0x30], 0x51
mov dword [ebp - 4], edx
je 0x1015f617
cmp dword [ebx + 0x30], 0x30
je 0x1015f617
cmp dword [ebx + 0x30], 0x2f
je 0x1015f617
cmp dword [eax + 0x10], 0xffffffff
jne 0x1015f5ce
mov dword [ebp - 8], 1
mov eax, dword [eax + 0x28]
test eax, eax
je 0x1015f617
cmp dword [eax + 0x10], 0xffffffff
jne 0x1015f5e2
mov dword [ebp - 8], 1
cmp dword [eax + 0x28], 0
je 0x1015f60d
push 0x1002ff20
lea eax, [ebx + 0x10]
push 0x7d9
push eax
push dword [esi]
call fcn.1013911e
mov ecx, dword [ebp - 0x10]
add esp, 0x10
mov edx, dword [ebp - 4]
mov dword [esi + 0x4c], 1
cmp dword [esi + 0x38], 0
je 0x1015f617
inc edx
mov dword [ebp - 4], edx
inc ecx
add edi, 4
mov dword [ebp - 0x10], ecx
cmp ecx, 4
jb 0x1015f5a2
push dword [ebp - 4]
mov ecx, esi
call fcn.1015f2de
test eax, eax
js 0x1015fb32
mov eax, dword [esi + 0x5c]
mov ecx, dword [ebp - 4]
add eax, ecx
mov edi, dword [ebx + 0x30]
mov dword [ebp - 0x14], eax
cmp edi, 3
jne 0x1015f748
mov eax, dword [esi + 0x38]
test eax, eax
js 0x1015f65c
cmp eax, 5
jle 0x1015f668
add eax, 0xfffffff6
cmp eax, 4
ja 0x1015f748
mov ecx, dword [ebx + 0x48]
mov edx, 0x7000000
push 2
pop edi
mov eax, dword [ecx + 0x14]
cmp eax, edx
ja 0x1015f70d
je 0x1015f704
test eax, eax
je 0x1015f6fb
cmp eax, 0x1000000
je 0x1015f6f5
mov edx, 0x2000000
cmp eax, edx
je 0x1015f6ec
cmp eax, 0x3000000
je 0x1015f742
mov edx, 0x4000000
cmp eax, edx
je 0x1015f6e3
cmp eax, 0x5000000
je 0x1015f742
cmp eax, 0x6000000
jne 0x1015f745
push 0x1003002c
lea eax, [ebx + 0x10]
push 0x7dd
push eax
push dword [esi]
call fcn.1013911e
add esp, 0x10
mov dword [esi + 0x4c], 1
jmp 0x1015f745
mov dword [ecx + 0x14], 0x5000000
jmp 0x1015f745
mov dword [ecx + 0x14], 0x3000000
jmp 0x1015f745
and dword [ecx + 0x14], 0
jmp 0x1015f745
mov dword [ecx + 0x14], 0x1000000
jmp 0x1015f745
mov dword [ecx + 0x14], 0x8000000
jmp 0x1015f745
cmp eax, 0x8000000
je 0x1015f742
cmp eax, 0x9000000
je 0x1015f6c2
cmp eax, 0xa000000
je 0x1015f6c2
mov edx, 0xb000000
cmp eax, edx
je 0x1015f739
cmp eax, 0xc000000
je 0x1015f742
cmp eax, 0xd000000
jmp 0x1015f6bc
mov dword [ecx + 0x14], 0xc000000
jmp 0x1015f745
mov dword [ecx + 0x14], edx
mov ecx, dword [ebp - 4]
cmp dword [ebx + 0x54], 0
je 0x1015f754
or edi, 0x40000000
cmp dword [ebx + 0x40], 0
je 0x1015f760
or edi, 0x10000000
mov eax, dword [esi + 0x38]
cmp eax, 1
jl 0x1015f76d
cmp eax, 5
jle 0x1015f775
add eax, 0xfffffff6
cmp eax, 4
ja 0x1015f77d
lea eax, [ecx - 1]
shl eax, 0x18
or edi, eax
cmp dword [ebx + 0x30], 0x29
je 0x1015f78f
cmp dword [ebx + 0x30], 0x2d
je 0x1015f78f
cmp dword [ebx + 0x30], 0x5e
jne 0x1015f79a
mov eax, dword [ebx + 0x38]
and eax, 7
shl eax, 0x10
or edi, eax
mov ecx, dword [esi + 0x5c]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], edi
mov edx, dword [esi + 0x5c]
inc edx
mov dword [esi + 0x5c], edx
mov eax, dword [ebx + 0x30]
cmp eax, 0x1f
jne 0x1015f7ca
mov ecx, dword [ebx + 0x38]
mov eax, dword [esi + 0x58]
or ecx, 0x80000000
mov dword [eax + edx*4], ecx
inc dword [esi + 0x5c]
mov edx, dword [esi + 0x5c]
mov eax, dword [ebx + 0x30]
mov edi, dword [ebx + 0x3c]
test edi, edi
je 0x1015f89c
cmp dword [edi + 4], 0x13
jne 0x1015f89c
cmp dword [esi + 0x38], 0
mov ecx, 0xf0000
jne 0x1015f80e
cmp dword [edi + 0x20], ecx
jne 0x1015f80e
cmp eax, 0x15
je 0x1015f807
cmp eax, 0x17
je 0x1015f807
cmp eax, 0x18
jne 0x1015f80e
mov dword [edi + 0x20], 0x30000
jmp 0x1015f80e
mov dword [edi + 0x20], 0x70000
mov eax, dword [edi + 0x10]
mov edx, eax
or edx, 0xfffffff8
and eax, 0x18
shl edx, 0x14
or edx, eax
mov eax, dword [ebx + 0x34]
and eax, 0xff00000
shl edx, 8
or edx, eax
mov eax, dword [edi + 0x18]
and eax, 0x7ff
or edx, eax
mov eax, dword [edi + 0x20]
and eax, ecx
or edx, eax
cmp dword [edi + 0x28], 0
je 0x1015f848
or edx, 0x2000
mov ecx, dword [esi + 0x5c]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], edx
mov edx, dword [esi + 0x5c]
inc edx
mov dword [esi + 0x5c], edx
mov edi, dword [edi + 0x28]
test edi, edi
je 0x1015f89c
mov eax, dword [edi + 0x10]
mov ecx, eax
or ecx, 0xfffffff8
and eax, 0x18
shl ecx, 0x14
or ecx, eax
mov eax, dword [edi + 0x14]
and eax, 0xf000000
shl ecx, 8
or ecx, eax
mov eax, dword [edi + 0x18]
and eax, 0x7ff
or ecx, eax
mov eax, dword [edi + 0x24]
and eax, 0xff0000
or ecx, eax
mov eax, dword [esi + 0x58]
mov dword [eax + edx*4], ecx
inc dword [esi + 0x5c]
mov edx, dword [esi + 0x5c]
mov eax, dword [ebx + 0x40]
mov edi, edx
test eax, eax
je 0x1015f8eb
cmp dword [eax + 4], 0x13
jne 0x1015f8eb
mov eax, dword [eax + 0x10]
mov ecx, eax
mov edi, dword [ebx + 0x40]
or ecx, 0xfffffff8
and eax, 0x18
shl ecx, 0x14
or ecx, eax
shl ecx, 8
mov eax, dword [edi + 0x14]
and eax, 0xf000000
or ecx, eax
mov eax, dword [edi + 0x18]
and eax, 0x7ff
or ecx, eax
mov eax, dword [edi + 0x24]
and eax, 0xff0000
or ecx, eax
mov eax, dword [esi + 0x58]
mov dword [eax + edx*4], ecx
inc dword [esi + 0x5c]
mov edi, dword [esi + 0x5c]
cmp dword [ebx + 0x30], 0x51
jne 0x1015f944
and dword [ebp - 0x10], 0
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ebx]
mov edx, edi
test ecx, ecx
je 0x1015f98c
mov eax, dword [ecx + 0x10]
sub eax, 5
je 0x1015f91b
sub eax, 1
je 0x1015f91b
sub eax, 1
je 0x1015f91b
sub eax, 1
jne 0x1015f92a
fld qword [ecx + 0x18]
mov ecx, dword [esi + 0x58]
fstp dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov dword [ecx + edi*4], eax
mov edi, dword [esi + 0x5c]
add ebx, 4
mov eax, dword [ebp - 0x10]
inc edi
inc eax
mov dword [esi + 0x5c], edi
mov dword [ebp - 0x10], eax
mov edx, edi
cmp eax, 4
jb 0x1015f8f8
jmp 0x1015f98c
cmp dword [ebx + 0x30], 0x30
jne 0x1015f994
mov ebx, dword [ebp - 0xc]
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebx]
mov edx, edi
test eax, eax
je 0x1015f98c
mov eax, dword [eax + 0x10]
dec eax
sub eax, 1
je 0x1015f969
dec eax
sub eax, 1
jne 0x1015f977
mov eax, dword [ebx]
mov ecx, dword [esi + 0x58]
mov eax, dword [eax + 0x18]
mov dword [ecx + edi*4], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [esi + 0x5c]
add ebx, 4
inc edx
inc ecx
mov dword [esi + 0x5c], edx
mov edi, edx
mov dword [ebp - 0x10], ecx
cmp ecx, 4
jb 0x1015f952
mov ebx, dword [ebp + 8]
jmp 0x1015faee
cmp dword [ebx + 0x30], 0x2f
jne 0x1015f9b6
mov eax, dword [ebx + 0x44]
xor ecx, ecx
cmp dword [eax + 0x18], ecx
mov eax, dword [esi + 0x58]
setne cl
mov dword [eax + edi*4], ecx
inc dword [esi + 0x5c]
mov edx, dword [esi + 0x5c]
jmp 0x1015faee
and dword [ebp - 0x10], 0
lea ecx, [ebx + 0x44]
mov ecx, dword [ecx]
mov edx, edi
mov dword [ebp - 4], ecx
test ecx, ecx
je 0x1015faee
cmp dword [esi + 0x38], 0
jne 0x1015fa03
cmp dword [ecx + 0x24], 0xe40000
jne 0x1015fa03
mov eax, dword [ebx + 0x30]
cmp eax, 6
je 0x1015f9fc
cmp eax, 7
je 0x1015f9fc
cmp eax, 0xe
je 0x1015f9fc
cmp eax, 0x4e
je 0x1015f9fc
cmp eax, 0xf
je 0x1015f9fc
cmp eax, 0x4f
jne 0x1015fa03
mov dword [ecx + 0x24], 0xff0000
mov eax, dword [ecx + 0x10]
mov edx, eax
or edx, 0xfffffff8
and eax, 0x18
shl edx, 0x14
or edx, eax
mov eax, dword [ecx + 0x14]
and eax, 0xf000000
shl edx, 8
or edx, eax
mov eax, dword [ecx + 0x18]
and eax, 0x7ff
or edx, eax
mov eax, dword [ecx + 0x24]
and eax, 0xff0000
or edx, eax
cmp dword [ecx + 0x28], 0
je 0x1015fa40
or edx, 0x2000
mov ecx, dword [esi + 0x5c]
mov eax, dword [esi + 0x58]
mov edi, dword [ebp - 4]
mov dword [eax + ecx*4], edx
mov edx, dword [esi + 0x5c]
inc edx
mov dword [esi + 0x5c], edx
mov edi, dword [edi + 0x28]
test edi, edi
je 0x1015fad3
mov eax, dword [edi + 0x10]
xor ecx, ecx
cmp dword [esi + 0x38], ecx
jne 0x1015fa99
cmp eax, 3
jne 0x1015fa78
cmp dword [edi + 0x14], ecx
jne 0x1015fa78
cmp dword [edi + 0x18], ecx
jne 0x1015fa78
cmp dword [edi + 0x24], ecx
je 0x1015fad0
push 0x100300d8
lea eax, [ebx + 0x10]
push 0x7d7
push eax
push dword [esi]
call fcn.1013911e
add esp, 0x10
mov dword [esi + 0x4c], 1
jmp 0x1015fad0
mov ecx, eax
and eax, 0x18
or ecx, 0xfffffff8
shl ecx, 0x14
or ecx, eax
mov eax, dword [edi + 0x14]
and eax, 0xf000000
shl ecx, 8
or ecx, eax
mov eax, dword [edi + 0x18]
and eax, 0x7ff
or ecx, eax
mov eax, dword [edi + 0x24]
and eax, 0xff0000
or ecx, eax
mov eax, dword [esi + 0x58]
mov dword [eax + edx*4], ecx
inc dword [esi + 0x5c]
mov edx, dword [esi + 0x5c]
mov eax, dword [ebp - 0x10]
mov edi, edx
mov ecx, dword [ebp - 0xc]
inc eax
add ecx, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ecx
cmp eax, 4
jb 0x1015f9bd
add ebx, 0x10
cmp edx, dword [ebp - 0x14]
je 0x1015fb0f
push 0x100300ac
push 0
push ebx
push dword [esi]
call fcn.1013911e
add esp, 0x10
mov dword [esi + 0x4c], 1
cmp dword [ebp - 8], 0
je 0x1015fb1d
mov eax, dword [esi + 0x5c]
mov dword [esi + 0x64], eax
jmp 0x1015fb30
push ebx
mov ecx, esi
call fcn.1015f277
test eax, eax
jns 0x1015fb30
mov dword [esi + 0x50], 1
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4