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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, eax
mov eax, dword [esi]
mov edx, dword [esi + 8]
xor ecx, ecx
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 4], eax
mov ebx, edx
cmp dword [esi + 0x1bc], ecx
je 0x100154bc
mov dword [ebp - 8], 1
cmp eax, dword [esi + 4]
je 0x100154bf
mov dword [ebp - 8], ecx
test dword [edi + 0x2c], 0x102
je 0x1001595a
test byte [ebp + 0xc], 5
mov ebx, dword [esi + 4]
mov dword [esi], ebx
je 0x1001555d
xor edx, edx
mov dword [esi + 0x16c], edx
cmp ebx, edx
je 0x100155b5
mov eax, dword [esi + 0x68]
cmp eax, 0x77
jg 0x100155b5
movzx ecx, word [ebx + eax*4 + 0xa]
mov edi, 0xffff
cmp cx, di
je 0x100155b5
mov edx, ecx
mov ecx, dword [ebp + 8]
imul edx, edx, 0x4c
mov edi, dword [ecx + 0x38]
add edi, edx
xor edx, edx
mov dword [esi + 8], edi
mov dword [ebp - 4], edi
cmp dword [edi + 0x34], edx
je 0x1001554a
mov edx, dword [edi + 4]
mov dword [esi + 0x7c], edx
test byte [ecx + 0x2c], 2
jne 0x10015535
movzx eax, word [ebx + eax*4 + 8]
call fcn.1001469c
mov dword [esi + 0x84], eax
mov dword [esi + 0xd8], eax
xor edx, edx
jmp 0x100155bd
mov dword [esi + 8], edx
mov dword [esi + 0xec], edx
mov dword [esi + 0x100], 1
xor edx, edx
cmp dword [ebp - 8], edx
jne 0x1001556a
mov dword [esi + 0x16c], edx
cmp ebx, edx
je 0x10015aea
mov eax, dword [esi + 0x68]
cmp eax, 0x77
jg 0x10015aea
movzx eax, word [ebx + eax*4 + 0xa]
mov ecx, 0xffff
cmp ax, cx
je 0x10015aea
mov edi, dword [ebp + 8]
imul eax, eax, 0x4c
add eax, dword [edi + 0x38]
jne 0x10015749
mov dword [esi + 0x54], 0x80
mov dword [esi + 0x5c], edx
mov dword [esi + 0x80], edx
jmp 0x10015938
xor edi, edi
mov dword [esi + 8], edx
mov dword [ebp - 4], edi
cmp edi, edx
je 0x1001554d
mov ecx, dword [esi + 0x120]
cmp ecx, dword [edi + 0x14]
jl 0x100155de
mov ecx, dword [ebp + 8]
test dword [ecx + 0x2c], 0x800
je 0x1001562d
mov dword [esi + 0x120], edx
or byte [esi + 0x11d], 1
cmp byte [edi + 0x3e], 0
je 0x1001564c
cmp byte [edi + 0x3f], 0
je 0x1001564c
mov dword [esi + 0xec], 1
mov al, byte [edi + 0x3c]
mov byte [esi + 0xf0], al
mov al, byte [edi + 0x3e]
mov byte [esi + 0xf2], al
mov al, byte [edi + 0x3f]
mov byte [esi + 0xf1], al
mov byte [esi + 0xf3], al
mov al, byte [edi + 0x3d]
mov byte [esi + 0xf4], al
mov dword [esi + 0xf8], edx
jmp 0x10015652
test byte [edi + 0x20], 0x10
je 0x1001563c
or dword [esi + 0x120], 0xffffffff
jmp 0x100155de
mov dword [esi + 8], edx
mov dword [ebp - 4], edx
mov dword [esi + 0x100], 1
mov dword [esi + 0xec], edx
test byte [ebp + 0xc], 0x10
mov eax, dword [ebx + 0x33c]
mov dword [esi + 0x140], eax
jne 0x1001555d
mov eax, dword [ebp + 8]
test dword [eax + 0x2c], 0x200
je 0x1001555d
mov eax, dword [ebx + 0x358]
test al, al
jns 0x1001568b
and eax, 0x7f
mov dword [esi + 0x184], eax
mov eax, dword [ebx + 0x35c]
test al, al
jns 0x1001569e
and eax, 0x7f
mov dword [esi + 0x188], eax
cmp dword [ebx + 0x348], 0
je 0x1001555d
mov eax, dword [ebp + 8]
mov edi, dword [eax + 8]
imul edi, edi, 0x20c
add edi, dword [eax + 0x1ec]
mov eax, dword [eax + 0x1f0]
mov dword [ebp - 0xc], eax
cmp byte [edi + 0x1b4], 0
je 0x10015739
mov eax, dword [edi + 0x12c]
cmp eax, dword [esi + 0x12c]
jne 0x10015739
cmp dword [edi], ebx
jne 0x10015739
mov eax, dword [ebx + 0x348]
dec eax
je 0x100156fa
dec eax
je 0x100156f2
dec eax
je 0x10015702
jmp 0x10015739
mov eax, dword [edi + 8]
cmp eax, dword [ebp - 4]
jmp 0x10015700
mov eax, dword [edi + 0x68]
cmp eax, dword [esi + 0x68]
jne 0x10015739
mov eax, dword [ebx + 0x34c]
sub eax, 0
je 0x1001572f
dec eax
je 0x10015723
dec eax
jne 0x10015739
mov eax, dword [edi + 0xc]
cmp eax, 0x7fff
jne 0x10015739
dec eax
mov dword [edi + 0xc], eax
jmp 0x10015739
mov edx, dword [ebp + 8]
mov eax, edi
call fcn.100145a0
jmp 0x10015739
mov dword [edi + 0x100], 1
add edi, 0x20c
dec dword [ebp - 0xc]
jne 0x100156c6
jmp 0x1001555d
mov ecx, dword [ebp + 0xc]
and ecx, 0x20
mov dword [ebp - 4], ecx
jne 0x1001576e
mov ecx, dword [eax + 0x10]
cmp ecx, edx
jge 0x1001576b
mov ecx, dword [ebx + 0x338]
cmp ecx, edx
jge 0x1001576b
mov ecx, dword [esi + 0x178]
mov dword [esi + 0x54], ecx
test byte [ebp + 0xc], 0x40
jne 0x10015789
mov ecx, dword [eax + 0x40]
mov dword [esi + 0x130], ecx
mov ecx, dword [eax + 0xc]
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x80], ecx
test dword [edi + 0x2c], 0x200
je 0x1001592f
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0xc], ecx
cmp dword [ebx + 0x350], edx
je 0x100157d1
mov ecx, dword [ebx + 0x350]
call fcn.100010d7
xor edx, edx
lea edi, [ecx + ecx]
div edi
push 0x64
mov eax, edx
sub eax, ecx
add eax, 0x64
imul eax, dword [ebp - 0xc]
pop ecx
xor edx, edx
div ecx
push 0x40
pop ecx
cmp eax, ecx
jae 0x100157d1
mov ecx, eax
mov eax, dword [ebx + 0x334]
imul eax, ecx
shr eax, 7
cmp dword [ebp - 4], 0
mov dword [esi + 0x130], eax
jne 0x1001592f
mov eax, dword [ebx + 0x340]
xor edx, edx
cmp eax, edx
je 0x10015823
mov edi, dword [esi + 0x68]
sub edi, dword [ebx + 0x344]
imul edi, eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2c]
and ecx, 0x210000
neg ecx
sbb ecx, ecx
and ecx, 2
inc ecx
sar edi, cl
mov dword [esi + 0x164], edi
jmp 0x10015829
mov dword [esi + 0x164], edx
cmp dword [ebx + 0x354], edx
je 0x10015896
cmp dword [esi + 0x54], edx
jl 0x10015896
mov ecx, dword [ebx + 0x354]
call fcn.100010d7
xor edx, edx
lea edi, [ecx + ecx]
div edi
mov eax, dword [ebp + 8]
sub edx, ecx
test dword [eax + 0x2c], 0x10000
je 0x1001587c
mov eax, dword [eax + 0x30]
mov ecx, eax
and ecx, 0xfffff000
cmp ecx, 0x5000
jne 0x10015870
and eax, 0xfff
jmp 0x10015872
xor eax, eax
cmp eax, 0x126
jae 0x1001587c
sar edx, 2
add dword [esi + 0x54], edx
mov ecx, dword [esi + 0x54]
jns 0x1001588a
and dword [esi + 0x54], 0
jmp 0x10015896
mov eax, 0xff
cmp ecx, eax
jle 0x10015896
mov dword [esi + 0x54], eax
cmp dword [ebp - 8], 0
je 0x100158ae
mov al, byte [ebx + 0x1e8]
and al, 0x21
cmp al, 0x21
jne 0x100158ae
and byte [esi + 0x14], 0xf7
jmp 0x100158c2
push 0xffffffffffffffc0
push esi
push dword [ebp + 8]
lea edi, [ebx + 0x1e8]
lea ecx, [esi + 0x14]
call fcn.10014e94
cmp dword [ebp - 8], 0
je 0x100158da
mov al, byte [ebx + 0x252]
and al, 0x21
cmp al, 0x21
jne 0x100158da
and byte [esi + 0x30], 0xf7
jmp 0x100158ee
push 0xffffffffffffffe0
push esi
push dword [ebp + 8]
lea edi, [ebx + 0x252]
lea ecx, [esi + 0x30]
call fcn.10014e94
cmp dword [ebp - 8], 0
je 0x10015909
mov al, byte [ebx + 0x2c8]
and al, 0x21
cmp al, 0x21
jne 0x10015909
and byte [esi + 0x148], 0xf7
jmp 0x1001592f
lea edi, [ebx + 0x2c8]
test byte [edi], 0x10
lea ecx, [esi + 0x148]
je 0x10015921
push 0xfffff800
jmp 0x10015926
push 0xfffffc00
push esi
push dword [ebp + 8]
call fcn.10014e94
mov eax, dword [ebx + 0x2bc]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0xc]
and eax, 0x20
jne 0x10015947
mov dword [esi + 0xc], 0x7fff
test eax, eax
jne 0x10015952
mov dword [esi + 0x4c], 1
mov edx, dword [ebp + 8]
jmp 0x10015bc8
test byte [ebp + 0xc], 5
je 0x10015a4d
test byte [ebp + 0xc], 8
mov eax, dword [esi + 4]
mov dword [ebp - 0xc], ecx
mov dword [esi], eax
mov dword [ebp - 4], eax
je 0x1001597f
test byte [edi + 0x2c], 8
jne 0x10015a95
test eax, eax
je 0x10015a90
mov ecx, dword [esi + 0x68]
movzx eax, word [eax + ecx*4 + 0xa]
mov ebx, 0xffff
cmp ax, bx
je 0x10015a90
mov ebx, eax
imul ebx, ebx, 0x4c
add ebx, dword [edi + 0x38]
cmp dword [ebx + 0x34], 0
je 0x10015a26
mov eax, dword [edi + 0x2c]
test al, 8
jne 0x100159fd
mov edi, dword [ebx + 8]
add edi, ecx
cmp edi, 0x77
mov edi, dword [ebp + 8]
jl 0x100159fd
test eax, 0x10000
je 0x100159e6
push 0x77
mov dword [esi + 8], ebx
pop eax
sub eax, dword [ebx + 8]
mov dword [esi + 0x68], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x64], eax
mov eax, dword [ebx + 4]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x68]
add eax, dword [esi + 0x64]
jmp 0x10015a11
mov eax, dword [esi + 0x1b8]
mov dword [esi + 0x68], eax
mov ebx, edx
mov dword [ebp - 0xc], 1
jmp 0x10015a95
mov dword [esi + 8], ebx
mov eax, dword [ebx + 8]
mov dword [esi + 0x64], eax
mov eax, dword [ebx + 4]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x64]
add eax, ecx
mov ecx, edi
call fcn.1001469c
mov dword [esi + 0x84], eax
mov dword [esi + 0xd8], eax
jmp 0x10015a95
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
and al, 1
movzx eax, al
neg eax
sbb eax, eax
and eax, ebx
mov dword [esi + 8], eax
xor ebx, ebx
and dword [esi + 0xec], 0
mov dword [esi + 0x100], 1
test byte [ebp + 0xc], 2
je 0x10015bcf
mov ecx, dword [edi + 0x2c]
mov edx, 0x88
and ecx, edx
cmp ecx, edx
jne 0x10015b5f
mov eax, dword [esi + 4]
test eax, eax
je 0x10015b5f
movzx eax, word [eax + 0xa]
mov ecx, dword [edi + 0x38]
imul eax, eax, 0x4c
mov eax, dword [eax + ecx + 0xc]
mov dword [esi + 0x5c], eax
mov dword [esi + 0x80], eax
jmp 0x10015b91
xor ebx, ebx
mov dword [esi + 8], ebx
xor edx, edx
cmp ebx, edx
je 0x10015a3c
mov dword [esi + 0xe4], edx
cmp dword [ebp - 0xc], edx
jne 0x10015b13
mov eax, dword [edi + 0x2c]
test al, al
jns 0x10015ab9
cmp dword [edi + 0x1c], 0xf
jne 0x10015ab9
test byte [ebx + 0x20], 0x10
jne 0x10015aff
mov ecx, dword [esi + 0x120]
cmp ecx, dword [ebx + 0x14]
jl 0x10015b0c
test eax, 0x10000
jne 0x10015af9
mov ecx, 0x88
and eax, ecx
cmp eax, 8
je 0x10015af9
cmp eax, ecx
jne 0x10015ae1
test byte [ebx + 0x20], 0x10
jne 0x10015aff
mov dword [esi + 8], edx
mov dword [esi + 0xec], edx
mov dword [esi + 0x100], 1
jmp 0x10015bcf
test byte [ebx + 0x20], 0x10
je 0x10015b04
mov eax, dword [ebx + 0x18]
jmp 0x10015b06
xor eax, eax
mov dword [esi + 0x120], eax
or byte [esi + 0x11d], 1
test byte [ebp + 0xc], 4
je 0x10015b2b
push dword [ebp - 4]
mov edi, esi
call fcn.100153b8
mov edi, dword [ebp + 8]
jmp 0x10015a4d
mov eax, dword [ebp - 4]
cmp eax, edx
je 0x10015a4d
test byte [eax + 0x1e8], 1
jne 0x10015a4d
cmp dword [esi + 0xc], edx
jne 0x10015a4d
mov dword [esi + 0xc], 0x7ef4
mov dword [esi + 0x10], 0x80
jmp 0x10015a4d
test ebx, ebx
jne 0x10015b7b
cmp ecx, edx
je 0x10015b6e
mov dword [esi + 0x54], 0x80
and dword [esi + 0x5c], 0
and dword [esi + 0x80], 0
jmp 0x10015b91
mov eax, dword [ebx + 0x10]
test eax, eax
js 0x10015b85
mov dword [esi + 0x54], eax
mov ebx, dword [ebx + 0xc]
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x80], ebx
test byte [ebp + 0xc], 0x20
jne 0x10015bc6
push dword [ebp - 4]
mov edi, esi
call fcn.100153b8
cmp dword [ebp - 4], 0
je 0x10015bae
or byte [esi + 0x11d], 6
and dword [esi + 0xe4], 0
mov edi, dword [ebp + 8]
mov dword [esi + 0xc], 0x7ef4
mov dword [esi + 0x78], 1
mov edx, edi
mov ecx, esi
call fcn.10014562
pop edi
pop esi
pop ebx
leave
ret 8