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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x144
mov edx, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x14]
push esi
push edi
mov esi, eax
or eax, 0xffffffff
lea edi, [edx + ebx]
lea ecx, [edi - 1]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], eax
xor eax, eax
test dword [ebp + 0x18], 0xe20f5a6f
mov dword [esp + 0x48], ecx
mov ecx, esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ecx
je 0x1008fb61
mov eax, 0xfffffffd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, eax
je 0x10090589
cmp edx, eax
je 0x10090589
cmp dword [ebp + 0x1c], eax
jne 0x1008fb7f
cmp dword [ebp + 0x20], eax
jg 0x10090589
cmp dword [ebp + 0x20], eax
jge 0x1008fb90
mov eax, 0xfffffff1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, eax
jl 0x1009057d
cmp ebx, dword [ebp + 0x10]
jg 0x1009057d
movzx edx, word [esi + 0x18]
add edx, esi
mov dword [esp + 0x80], edx
movzx edx, word [esi + 0x1c]
mov dword [esp + 0x78], edx
movzx edx, word [esi + 0x1a]
mov dword [esp + 0x7c], edx
mov edx, dword [esi + 0x20]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x5c], 0x989680
mov dword [esp + 0x60], 0x1770
mov dword [esp + 0xec], eax
cmp edx, eax
je 0x1008fc3c
mov ebx, dword [edx]
mov dword [esp + 0x10], ebx
test bl, 1
je 0x1008fbfd
mov ebx, dword [edx + 4]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
test bl, 2
je 0x1008fc0d
mov ebx, dword [edx + 8]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x10]
test bl, 0x10
je 0x1008fc1d
mov ebx, dword [edx + 0x14]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x10]
test bl, 4
je 0x1008fc30
mov ebx, dword [edx + 0xc]
mov dword [esp + 0xec], ebx
mov ebx, dword [esp + 0x10]
test bl, 8
je 0x1008fc3c
mov edx, dword [edx + 0x10]
mov dword [esp + 0x18], edx
cmp dword [esp + 0x18], eax
jne 0x1008fc4a
mov dword [esp + 0x18], 0xd4cea8
cmp dword [esi], 0x50435245
je 0x1008fc99
mov ebx, dword [esp + 0x20]
lea eax, [esp + 0xfc]
push eax
lea eax, [esp + 0x12c]
mov edx, esi
call fcn.100906e0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1008fc83
mov eax, 0xfffffffc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x20], 0
je 0x1008fc95
lea ecx, [esp + 0xfc]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
mov edx, dword [ebp + 0x18]
mov ebx, eax
shr eax, 0x12
and eax, 1
or ebx, edx
mov dword [esp + 0x50], eax
movzx eax, word [ecx + 0x1a]
shr ebx, 4
and ebx, 1
mov dword [esp + 0x3c], ebx
movzx ebx, word [ecx + 0xc]
shr ebx, 3
and ebx, 1
mov dword [esp + 0x38], ebx
movzx ebx, word [ecx + 0x1c]
imul ebx, eax
movzx eax, word [ecx + 0x18]
add ebx, esi
mov esi, dword [ebp + 0x14]
add eax, ebx
mov dword [esp + 0xb4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xb8], eax
add eax, dword [ebp + 0x10]
mov dword [esp + 0xd8], esi
mov dword [esp + 0xbc], eax
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 8]
shr eax, 5
and eax, 1
mov dword [esp + 0xa0], eax
mov eax, dword [ecx + 8]
shr eax, 0x19
and eax, 1
mov dword [esp + 0x9c], eax
mov eax, edx
shr eax, 7
and eax, 1
mov dword [esp + 0x94], eax
mov eax, edx
shr eax, 8
and eax, 1
mov dword [esp + 0x98], eax
mov eax, edx
shr eax, 0xa
and eax, 1
mov dword [esp + 0xa4], eax
mov eax, edx
shr eax, 0x1c
and eax, 1
mov dword [esp + 0xa8], eax
test edx, 0x8000000
je 0x1008fd6c
mov eax, 2
jmp 0x1008fd74
mov eax, edx
shr eax, 0xf
and eax, 1
mov ebx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x88], eax
add eax, 0x340
xor esi, esi
mov dword [esp + 0x8c], eax
mov eax, edx
and eax, 0x1800000
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xac], esi
mov dword [esp + 0xf0], esi
mov dword [esp + 0xe8], esi
je 0x1008fddb
cmp eax, 0x800000
je 0x1008fdce
cmp eax, 0x1000000
je 0x1008fdf4
mov eax, 0xffffffe9
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xb0], 1
jmp 0x1008fdfb
mov eax, dword [ecx + 8]
test eax, 0x1800000
je 0x1008fdf4
shr eax, 0x17
and eax, 1
mov dword [esp + 0xb0], eax
jmp 0x1008fdfb
mov dword [esp + 0xb0], esi
test edx, 0x700000
jne 0x1008fe08
mov eax, dword [ecx + 8]
jmp 0x1008fe0a
mov eax, edx
and eax, 0x700000
cmp eax, 0x300000
ja 0x1008fe65
je 0x1008fe5e
cmp eax, esi
je 0x1008fe5e
cmp eax, 0x100000
je 0x1008fe57
cmp eax, 0x200000
jne 0x1008fdc2
mov eax, 0xa
mov dword [esp + 0x70], esi
cmp eax, 0xff
jle 0x1008fe8b
mov edx, eax
sar edx, 8
mov dword [esp + 0x74], 2
mov byte [esp + 0x84], dl
mov byte [esp + 0x85], al
jmp 0x1008fe9a
mov eax, 0xd
jmp 0x1008fe2f
mov eax, 0xd0a
jmp 0x1008fe2f
cmp eax, 0x400000
je 0x1008fe81
cmp eax, 0x500000
jne 0x1008fdc2
mov dword [esp + 0x70], 2
jmp 0x1008fe9a
mov dword [esp + 0x70], 1
jmp 0x1008fe9a
mov dword [esp + 0x74], 1
mov byte [esp + 0x84], al
cmp ebx, esi
je 0x1008feb0
test byte [ecx + 0xc], 1
je 0x1008feb0
mov eax, 0xfffffff3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x55555556
imul dword [ebp + 0x20]
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ebx, [eax + eax*2]
movzx eax, word [ecx + 0x12]
mov dword [esp + 0x44], ebx
cmp ax, si
jbe 0x1008ff1a
mov ecx, eax
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jl 0x1008ff1a
lea ebx, [ecx + ecx*2 + 3]
lea ecx, [ebx*4]
push ecx
mov dword [esp + 0x48], ebx
call dword [0xd5b3b8]
mov esi, eax
add esp, 4
mov dword [esp + 0x64], esi
test esi, esi
jne 0x1008ff10
lea eax, [esi - 6]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x2c], 1
jmp 0x1008ff21
mov esi, dword [ebp + 0x1c]
mov dword [esp + 0x64], esi
lea ecx, [ebx + ebx]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
or edx, 0xffffffff
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x90], 0
mov dword [esp + 0xd4], edx
test esi, esi
je 0x1008ff8d
mov ecx, dword [esp + 0x14]
movzx ecx, word [ecx + 0x10]
add ecx, ecx
lea eax, [esi + ebx*4]
lea ebx, [ecx + ecx]
mov ecx, eax
sub ecx, ebx
lea ebx, [esi + 8]
cmp ecx, ebx
jae 0x1008ff70
mov ecx, ebx
sub eax, 4
cmp eax, ecx
jb 0x1008ff84
mov dword [eax], edx
sub eax, 4
cmp eax, ecx
jae 0x1008ff77
mov esi, dword [esp + 0x64]
mov dword [esi + 4], edx
mov eax, dword [esp + 0x64]
mov dword [eax], edx
cmp dword [esp + 0x3c], 0
jne 0x1008ffe9
mov ecx, dword [esp + 0x14]
test byte [ecx + 0xc], 2
je 0x1008ffcb
movzx eax, word [ecx + 0x14]
mov ebx, eax
and ebx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x54], eax
je 0x1008fff1
mov edx, dword [esp + 0x88]
movzx ebx, byte [edx + ebx]
mov dword [esp + 0x1c], ebx
jmp 0x1008fff1
cmp dword [esp + 0x38], 0
jne 0x1008ffe9
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1008ffe9
test byte [eax + 4], 1
je 0x1008ffe9
add eax, 8
mov dword [esp + 0x28], eax
jmp 0x1008ffed
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
test byte [ecx + 0xc], 4
je 0x10090021
movzx eax, word [ecx + 0x16]
mov ecx, eax
and ecx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + ecx + 0x100]
mov dword [esp + 0x4c], ecx
mov eax, dword [ebp + 0x18]
and eax, 0x4000000
mov dword [esp + 0xf8], eax
cmp dword [esp + 0x50], 0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
je 0x100900b1
mov edx, dword [esp + 0xbc]
mov ecx, edi
cmp edi, edx
jae 0x100900ad
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
test eax, eax
je 0x1009007a
push eax
lea esi, [esp + 0x78]
call fcn.100908d0
add esp, 4
test eax, eax
jne 0x100900ad
mov edx, dword [esp + 0xbc]
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
jmp 0x100900a2
mov ebx, edx
sub ebx, esi
cmp ecx, ebx
ja 0x1009009e
mov bl, byte [esp + 0x84]
cmp byte [ecx], bl
jne 0x1009009e
cmp esi, 1
je 0x100900a9
mov bl, byte [esp + 0x85]
cmp byte [ecx + 1], bl
je 0x100900a9
mov ebx, dword [esp + 0x1c]
inc ecx
cmp ecx, edx
jb 0x10090054
jmp 0x100900ad
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
or ecx, dword [ebp + 0x18]
test ecx, 0x4000000
jne 0x10090212
test ebx, ebx
js 0x10090127
cmp dword [esp + 0x54], 0
je 0x10090102
cmp edi, dword [esp + 0x10]
jae 0x10090212
lea esp, [esp]
movzx edx, byte [edi]
mov eax, dword [esp + 0x88]
movzx ecx, byte [edx + eax]
cmp ecx, ebx
je 0x10090212
inc edi
cmp edi, dword [esp + 0x10]
jb 0x100900e0
jmp 0x10090212
cmp edi, dword [esp + 0x10]
jae 0x10090212
lea esp, [esp]
movzx edx, byte [edi]
cmp edx, ebx
je 0x10090212
inc edi
cmp edi, dword [esp + 0x10]
jb 0x10090110
jmp 0x10090212
cmp dword [esp + 0x38], 0
je 0x100901db
mov eax, dword [esp + 0xb8]
add eax, dword [ebp + 0x14]
cmp edi, eax
jbe 0x10090212
cmp edi, dword [esp + 0x10]
jae 0x100901b9
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0xb8]
cmp dword [esp + 0x70], 0
je 0x1009018b
cmp edi, esi
jbe 0x100901b2
mov edx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0xbc]
lea esi, [esp + 0x78]
mov ecx, edi
call fcn.10090960
add esp, 4
test eax, eax
jne 0x100901b9
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0xb8]
jmp 0x100901b2
lea eax, [ecx + esi]
cmp edi, eax
jb 0x100901b2
mov dl, byte [esp + 0x84]
mov eax, edi
sub eax, ecx
cmp byte [eax], dl
jne 0x100901b2
cmp ecx, 1
je 0x100901b9
mov dl, byte [esp + 0x85]
cmp byte [eax + 1], dl
je 0x100901b9
inc edi
cmp edi, dword [esp + 0x10]
jb 0x10090155
cmp byte [edi - 1], 0xd
jne 0x10090212
mov eax, dword [esp + 0x70]
cmp eax, 1
je 0x100901cd
cmp eax, 2
jne 0x10090212
cmp edi, dword [esp + 0x10]
jae 0x10090212
cmp byte [edi], 0xa
jne 0x10090212
inc edi
jmp 0x10090212
cmp dword [esp + 0x28], 0
je 0x10090212
cmp edi, dword [esp + 0x10]
jae 0x10090212
mov esi, dword [esp + 0x10]
lea esp, [esp]
movzx eax, byte [edi]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
shr eax, 3
mov al, byte [eax + ecx]
test al, dl
jne 0x10090212
inc edi
cmp edi, esi
jb 0x100901f0
cmp dword [esp + 0xf8], 0
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
jne 0x100902bc
cmp dword [esp + 0xcc], 0
jne 0x100902bc
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1009024d
test byte [eax + 4], 2
je 0x1009024d
mov ecx, edx
sub ecx, edi
cmp ecx, dword [eax + 0x28]
jb 0x10090290
mov esi, dword [esp + 0x30]
test esi, esi
js 0x100902bc
mov eax, edx
sub eax, edi
cmp eax, 0x3e8
jge 0x100902bc
xor eax, eax
test ebx, ebx
setns al
add eax, edi
cmp eax, dword [esp + 0x48]
jbe 0x100902bc
cmp dword [esp + 0x40], 0
je 0x10090297
cmp eax, edx
jae 0x10090290
mov ebx, dword [esp + 0x4c]
mov edi, edi
movzx ecx, byte [eax]
inc eax
cmp ecx, esi
je 0x100902b3
cmp ecx, ebx
je 0x100902b3
cmp eax, edx
jb 0x10090280
xor ebx, ebx
jmp 0x1009042e
cmp eax, edx
jae 0x10090290
jmp 0x100902a0
movzx ecx, byte [eax]
inc eax
cmp ecx, esi
je 0x100902b3
cmp eax, edx
jb 0x100902a0
xor ebx, ebx
jmp 0x1009042e
dec eax
cmp eax, edx
jae 0x10090290
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xb4]
xor esi, esi
push esi
push esi
lea edx, [esp + 0x60]
push edx
push 2
push esi
push edi
push eax
push edi
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe8], edi
mov dword [esp + 0x78], esi
mov dword [esp + 0xfc], esi
mov dword [esp + 0xf0], esi
call fcn.1008bc50
add esp, 0x20
mov ebx, eax
cmp dword [esp + 0xac], esi
je 0x10090316
cmp dword [esp + 0x24], esi
jne 0x10090316
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x24], ecx
cmp ebx, 0xfffffc1e
jg 0x10090341
je 0x10090334
cmp ebx, 0xfffffc1a
je 0x10090290
cmp ebx, 0xfffffc1d
jmp 0x10090357
mov eax, dword [esp + 0xc0]
cmp eax, edi
je 0x1009035d
jmp 0x10090360
cmp ebx, 0xfffffc1f
jl 0x10090421
cmp ebx, 0xfffffc20
jle 0x1009035d
cmp ebx, esi
jne 0x10090421
lea eax, [edi + 1]
xor ebx, ebx
mov dword [esp + 0x34], eax
cmp dword [esp + 0x50], esi
je 0x100903d0
cmp dword [esp + 0x70], esi
je 0x100903a3
cmp edi, dword [esp + 0xbc]
jae 0x100903d0
mov edx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0xc0]
lea esi, [esp + 0x78]
mov ecx, edi
call fcn.100908d0
add esp, 4
test eax, eax
jne 0x1009042e
mov eax, dword [esp + 0x34]
jmp 0x100903d0
mov ecx, dword [esp + 0xbc]
mov esi, dword [esp + 0x74]
sub ecx, esi
cmp edi, ecx
ja 0x100903d0
mov dl, byte [esp + 0x84]
cmp byte [edi], dl
jne 0x100903d0
cmp esi, 1
je 0x1009042e
mov cl, byte [esp + 0x85]
cmp byte [edi + 1], cl
je 0x1009042e
mov edi, eax
cmp dword [esp + 0x3c], ebx
jne 0x1009042e
mov ecx, dword [esp + 0x18]
cmp eax, ecx
ja 0x1009042e
cmp byte [eax - 1], 0xd
jne 0x10090411
cmp eax, ecx
jae 0x10090411
cmp byte [eax], 0xa
jne 0x10090411
mov edx, dword [esp + 0x14]
test byte [edx + 0xc], 0x20
jne 0x10090411
mov ecx, dword [esp + 0x70]
cmp ecx, 1
je 0x1009040e
cmp ecx, 2
je 0x1009040e
cmp dword [esp + 0x74], 2
jne 0x10090411
lea edi, [eax + 1]
mov dword [esp + 0xf0], ebx
mov ebx, dword [esp + 0x1c]
jmp 0x10090030
cmp ebx, 1
je 0x1009048e
cmp ebx, 0xfffffc19
je 0x1009048e
cmp dword [esp + 0x2c], 0
je 0x10090443
mov eax, dword [esp + 0x64]
push eax
call dword [0xd5b3bc]
add esp, 4
test ebx, ebx
je 0x10090450
cmp ebx, 0xfffffff4
jne 0x10090574
mov edx, dword [esp + 0x24]
test edx, edx
je 0x10090486
cmp dword [ebp + 0x20], 1
mov dword [esp + 0xf0], 0
jle 0x1009047c
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x1c]
sub edx, ecx
mov dword [eax], edx
mov edx, dword [esp + 0x18]
sub edx, ecx
mov dword [eax + 4], edx
mov ebx, 0xfffffff4
jmp 0x1009055c
or ebx, 0xffffffff
jmp 0x1009055c
cmp dword [esp + 0x2c], esi
mov esi, dword [ebp + 0x1c]
je 0x100904d9
mov ebx, dword [ebp + 0x20]
mov edi, dword [esp + 0x64]
cmp ebx, 4
jl 0x100904bb
lea ecx, [ebx*4 - 8]
push ecx
lea edx, [edi + 8]
push edx
lea eax, [esi + 8]
push eax
call fcn.1009aea0
add esp, 0xc
cmp dword [esp + 0xd0], ebx
jle 0x100904cf
mov dword [esp + 0x90], 1
push edi
call dword [0xd5b3bc]
add esp, 4
cmp dword [esp + 0x90], 0
mov edi, dword [esp + 0xd0]
je 0x100904ee
xor ebx, ebx
jmp 0x100904f7
mov eax, edi
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
mov ecx, dword [esp + 0x14]
movzx ecx, word [ecx + 0x10]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
cmp eax, ecx
jg 0x10090534
test esi, esi
je 0x10090534
lea eax, [ecx + ecx + 2]
cmp eax, dword [ebp + 0x20]
jle 0x1009051b
mov eax, dword [esp + 0x44]
lea edi, [esi + edi*4]
lea ecx, [esi + eax*4]
cmp edi, ecx
jae 0x10090534
mov esi, dword [ebp + 0x1c]
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
cmp dword [ebp + 0x20], 2
jge 0x1009053e
xor ebx, ebx
jmp 0x1009055c
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
sub edx, eax
sub ecx, eax
mov dword [esi], edx
mov dword [esi + 4], ecx
mov eax, dword [ebp + 8]
test eax, eax
je 0x10090574
test byte [eax], 0x20
je 0x10090574
mov edx, dword [eax + 0x18]
mov eax, dword [esp + 0xf0]
mov dword [edx], eax
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xffffffe8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret