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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x888988
sub esp, 0x44
mov ebx, dword [esp + 0x48]
mov ebp, dword [ebx + 0x70]
test ebp, ebp
je 0x888229
cmp ebp, 1
jne 0x888229
mov dword [esp + 0x48], ebx
mov ebp, dword [ebx + 0x98]
mov esi, dword [ebx + 0x94]
mov eax, dword [ebx + 0x5c]
lea ecx, [eax + esi]
cmp eax, ebp
jge 0x888880
xor eax, eax
test eax, eax
je 0x888854
mov ebp, dword [ebx + 0x94]
sub ebp, eax
mov dword [ebx + 0x94], ebp
mov esi, dword [ebx + 0x50]
mov edx, dword [ebx + 0x58]
mov ecx, dword [ebx + 0x5c]
cmp dword [ebx + 0x54], ecx
je 0x8887ca
test ebp, ebp
jg 0x8887ca
mov dword [esp + 0x3c], ebx
mov eax, dword [ebx + 0x8c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.008890a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test edx, edx
jne 0x8887a6
cmp eax, 0x100
jge 0x888310
nop
mov edx, dword [esp + 0x3c]
mov ebx, dword [edx + 0x50]
mov ecx, dword [edx + 0x54]
mov ebp, dword [edx + 0x5c]
cmp ebp, ecx
jae 0x888980
mov byte [ebx + ebp], al
mov ebx, dword [edx + 0x5c]
lea ecx, [ebx + 1]
mov dword [edx + 0x5c], ecx
mov ebx, dword [edx + 0x58]
mov ebp, dword [edx + 0x50]
cmp dword [edx + 0x54], ecx
je 0x88828f
mov ebx, edx
jmp 0x888229
mov eax, dword [edx + 0x60]
cmp eax, ecx
ja 0x88897b
mov dword [edx + 0x60], ecx
mov esi, ecx
sub ecx, eax
sub ebx, eax
mov edi, ebx
neg ebx
sar ebx, 0x1f
and eax, ebx
add eax, ebp
cmp dword [edx + 0x54], esi
jne 0x8882c5
mov dword [edx + 0x5c], 0
mov dword [edx + 0x60], 0
mov byte [edx + 0x64], 1
mov dword [edx + 0x84], ecx
mov dword [edx + 0x88], edi
mov ecx, dword [0xe8ff30]
test ecx, ecx
jne 0x8882f5
mov dword [edx + 0x80], eax
lea eax, [0x9ff2ec]
mov dword [edx + 0x6c], eax
mov dword [edx + 0x70], 0
add esp, 0x44
ret
lea edi, [edx + 0x80]
call fcn.00456ab0
lea edi, [edx + 0x6c]
lea eax, [0x9ff2ec]
call fcn.00456ab0
jmp 0x8882ea
je 0x8886cf
cmp eax, 0x109
jge 0x8885f9
lea ebx, [eax - 0xfe]
xor eax, eax
test eax, eax
jbe 0x8885f0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ebx
mov ebp, dword [esp + 0x3c]
cmp dword [ebp + 0x14], eax
jae 0x888384
mov dword [esp], ebp
call fcn.00888fc0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x888360
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
jmp 0x888339
mov edx, dword [esp + 0x3c]
mov dword [edx + 0x78], eax
mov ebx, dword [0xe8ff30]
test ebx, ebx
jne 0x888378
mov dword [edx + 0x7c], ecx
add esp, 0x44
ret
lea edi, [edx + 0x7c]
mov eax, ecx
call fcn.00456ab0
jmp 0x888374
cmp eax, 0x20
sbb esi, esi
mov ecx, ebx
mov ebx, dword [ebp + 0x10]
mov edx, ecx
mov ecx, eax
mov edi, ebx
shr ebx, cl
and ebx, esi
mov dword [ebp + 0x10], ebx
sub dword [ebp + 0x14], eax
mov ebx, 1
shl ebx, cl
and ebx, esi
dec ebx
and edi, ebx
lea ebx, [edx + edi]
mov dword [esp + 0x38], ebx
mov esi, dword [ebp + 0x90]
test esi, esi
jne 0x8885a3
cmp dword [ebp + 0x14], 5
jae 0x888405
mov dword [esp], ebp
call fcn.00888fc0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test ecx, ecx
jne 0x8883e3
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
jmp 0x8883bf
mov edx, dword [esp + 0x3c]
mov dword [edx + 0x78], ecx
mov ecx, dword [0xe8ff30]
test ecx, ecx
jne 0x8883fb
mov dword [edx + 0x7c], eax
add esp, 0x44
ret
lea edi, [edx + 0x7c]
call fcn.00456ab0
jmp 0x8883f7
mov esi, dword [ebp + 0x10]
mov eax, esi
and esi, 0x1f
shl esi, 3
xchg esi, eax
movzx eax, al
xchg esi, eax
mov ecx, ebx
lea ebx, [0xe19dc0]
movzx ebx, byte [ebx + esi]
shr eax, 5
mov dword [ebp + 0x10], eax
add dword [ebp + 0x14], 0xfffffffb
cmp ebx, 4
jge 0x888498
inc ebx
movzx esi, byte [ebp + 0x64]
xchg esi, eax
test al, al
xchg esi, eax
je 0x888493
mov esi, dword [ebp + 0x54]
cmp ebx, esi
jg 0x888455
mov dword [ebp + 0x94], ecx
mov dword [ebp + 0x98], ebx
mov ebx, ebp
jmp 0x8881d9
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00408720
mov eax, dword [esp + 8]
lea ecx, [0xaa5e10]
mov edx, dword [esp + 0x3c]
mov dword [edx + 0x78], ecx
mov ecx, dword [0xe8ff30]
test ecx, ecx
jne 0x888489
mov dword [edx + 0x7c], eax
add esp, 0x44
ret
lea edi, [edx + 0x7c]
call fcn.00456ab0
jmp 0x888485
mov esi, dword [ebp + 0x5c]
jmp 0x88843e
cmp ebx, 0x1e
jge 0x888565
lea esi, [ebx - 2]
shr esi, 1
mov dword [esp + 0x18], esi
cmp esi, 0x20
mov eax, ebp
sbb ebp, ebp
and ebx, 1
mov edx, ecx
mov ecx, esi
shl ebx, cl
and ebx, ebp
mov dword [esp + 0x24], ebx
cmp dword [eax + 0x14], ecx
jae 0x888511
mov dword [esp], eax
call fcn.00888fc0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x8884ed
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x24]
mov esi, ecx
jmp 0x8884c0
mov edx, dword [esp + 0x3c]
mov dword [edx + 0x78], eax
mov ebx, dword [0xe8ff30]
test ebx, ebx
jne 0x888505
mov dword [edx + 0x7c], ecx
add esp, 0x44
ret
lea edi, [edx + 0x7c]
mov eax, ecx
call fcn.00456ab0
jmp 0x888501
cmp ecx, 0x20
sbb esi, esi
mov ebp, esi
mov esi, dword [eax + 0x10]
mov edi, esi
shr esi, cl
and esi, ebp
mov dword [eax + 0x10], esi
sub dword [eax + 0x14], ecx
lea esi, [ecx + 1]
mov dword [esp + 0x34], esi
cmp esi, 0x20
sbb esi, esi
mov dword [esp + 0x38], esi
mov esi, 1
shl esi, cl
and esi, ebp
dec esi
and edi, esi
or ebx, edi
mov ecx, dword [esp + 0x34]
mov esi, 1
shl esi, cl
mov ecx, esi
mov esi, dword [esp + 0x38]
and esi, ecx
lea ebx, [ebx + esi + 1]
mov ecx, edx
mov ebp, eax
jmp 0x888431
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00408720
mov eax, dword [esp + 8]
lea ecx, [0xaa5e10]
mov edx, dword [esp + 0x3c]
mov dword [edx + 0x78], ecx
mov ecx, dword [0xe8ff30]
test ecx, ecx
jne 0x888599
mov dword [edx + 0x7c], eax
add esp, 0x44
ret
lea edi, [edx + 0x7c]
call fcn.00456ab0
jmp 0x888595
mov dword [esp], ebp
mov dword [esp + 4], esi
call fcn.008890a0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
test edx, edx
jne 0x8885ce
mov ebp, dword [esp + 0x3c]
mov ebx, ecx
mov ecx, dword [esp + 0x38]
jmp 0x88842b
mov ecx, dword [esp + 0x3c]
mov dword [ecx + 0x78], edx
mov edx, dword [0xe8ff30]
test edx, edx
jne 0x8885e6
mov dword [ecx + 0x7c], eax
add esp, 0x44
ret
lea edi, [ecx + 0x7c]
call fcn.00456ab0
jmp 0x8885e2
mov ebp, dword [esp + 0x3c]
jmp 0x8883ad
cmp eax, 0x10d
jge 0x888612
shl eax, 1
lea ebx, [eax - 0x207]
mov eax, 1
jmp 0x888329
cmp eax, 0x111
jge 0x88862c
shl eax, 2
lea ebx, [eax - 0x421]
mov eax, 2
jmp 0x888329
cmp eax, 0x115
jge 0x888646
shl eax, 3
lea ebx, [eax - 0x865]
mov eax, 3
jmp 0x888329
cmp eax, 0x119
jge 0x888660
shl eax, 4
lea ebx, [eax - 0x110d]
mov eax, 4
jmp 0x888329
cmp eax, 0x11d
jge 0x88867a
shl eax, 5
lea ebx, [eax - 0x229d]
mov eax, 5
jmp 0x888329
cmp eax, 0x11e
jge 0x88868d
xor eax, eax
mov ebx, 0x102
jmp 0x888329
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00408720
mov eax, dword [esp + 8]
lea ecx, [0xaa5e10]
mov edx, dword [esp + 0x3c]
mov dword [edx + 0x78], ecx
mov ecx, dword [0xe8ff30]
test ecx, ecx
jne 0x8886c5
mov dword [edx + 0x7c], eax
add esp, 0x44
ret
lea edi, [edx + 0x7c]
call fcn.00456ab0
jmp 0x8886c1
nop
mov ebx, dword [esp + 0x3c]
movzx ebp, byte [ebx + 0x74]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x888768
mov ecx, dword [ebx + 0x5c]
mov eax, dword [ebx + 0x60]
mov ebp, ecx
sub ecx, eax
test ecx, ecx
jle 0x88874c
mov edx, dword [ebx + 0x58]
mov esi, dword [ebx + 0x50]
cmp ebp, edx
ja 0x888974
cmp eax, ebp
ja 0x88896d
mov dword [ebx + 0x60], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov edx, dword [ebx + 0x54]
cmp dword [ebx + 0x5c], edx
jne 0x888730
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0x60], 0
mov byte [ebx + 0x64], 1
mov dword [ebx + 0x84], ecx
mov dword [ebx + 0x88], ebp
mov ecx, dword [0xe8ff30]
test ecx, ecx
jne 0x888799
mov dword [ebx + 0x80], eax
mov eax, dword [0xe7accc]
mov ecx, dword [0xe7acc8]
mov dword [ebx + 0x78], ecx
mov ecx, dword [0xe8ff30]
test ecx, ecx
jne 0x88878f
mov dword [ebx + 0x7c], eax
mov ecx, dword [0xe8ff30]
test ecx, ecx
jne 0x88877f
lea eax, [0x9ff2f0]
mov dword [ebx + 0x6c], eax
add esp, 0x44
ret
lea edi, [ebx + 0x6c]
lea eax, [0x9ff2f0]
call fcn.00456ab0
jmp 0x88877b
lea edi, [ebx + 0x7c]
call fcn.00456ab0
jmp 0x888768
lea edi, [ebx + 0x80]
call fcn.00456ab0
jmp 0x88874c
mov ebx, dword [esp + 0x3c]
mov dword [ebx + 0x78], edx
mov edx, dword [0xe8ff30]
test edx, edx
jne 0x8887be
mov dword [ebx + 0x7c], ecx
add esp, 0x44
ret
lea edi, [ebx + 0x7c]
mov eax, ecx
call fcn.00456ab0
jmp 0x8887ba
mov eax, dword [ebx + 0x60]
cmp ecx, edx
ja 0x888953
cmp eax, ecx
ja 0x88894e
mov dword [ebx + 0x60], ecx
sub ecx, eax
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov edx, dword [ebx + 0x54]
cmp dword [ebx + 0x5c], edx
jne 0x888809
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0x60], 0
mov byte [ebx + 0x64], 1
mov dword [ebx + 0x84], ecx
mov dword [ebx + 0x88], ebp
mov ecx, dword [0xe8ff30]
test ecx, ecx
jne 0x888839
mov dword [ebx + 0x80], eax
lea eax, [0x9ff2ec]
mov dword [ebx + 0x6c], eax
mov dword [ebx + 0x70], 1
add esp, 0x44
ret
lea edi, [ebx + 0x80]
call fcn.00456ab0
lea edi, [ebx + 0x6c]
lea eax, [0x9ff2ec]
call fcn.00456ab0
jmp 0x88882e
lea eax, [ebx + 0x50]
mov ecx, dword [ebx + 0x98]
mov edx, dword [ebx + 0x94]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00885d00
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x48]
jmp 0x888201
cmp dword [ebx + 0x54], ecx
jl 0x8881f7
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], ecx
mov esi, eax
sub eax, ebp
mov dword [esp + 0x14], eax
mov edx, esi
mov ebp, dword [ebx + 0x58]
mov edi, ebx
mov ebx, dword [ebx + 0x50]
cmp ecx, ebp
ja 0x888966
cmp esi, ecx
ja 0x88895f
mov dword [esp + 0x38], ebp
sub ecx, esi
sub ebp, esi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, esi
add ebp, ebx
cmp eax, esi
ja 0x888958
mov dword [esp + 0x2c], esi
mov dword [esp + 0x40], ebp
sub esi, eax
mov ebp, dword [esp + 0x38]
sub ebp, eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
add ebx, ebp
cmp ecx, esi
jle 0x88894a
mov dword [esp + 0x38], esi
mov ebp, dword [esp + 0x40]
cmp ebp, ebx
je 0x88890d
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
call fcn.00457480
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x38]
add ebx, ebp
mov ecx, dword [esp + 0x28]
cmp ebx, ecx
jge 0x888934
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
mov esi, ebx
mov ebx, ebp
jmp 0x88889b
mov ebp, dword [esp + 0x48]
mov dword [ebp + 0x5c], ebx
mov esi, dword [esp + 0x30]
sub ebx, esi
mov eax, ebx
mov ebx, ebp
jmp 0x8881f9
mov esi, ecx
jmp 0x8888f1
call fcn.00456b90
call fcn.00456b70
mov ecx, esi
call fcn.00456b90
mov eax, esi
call fcn.00456b90
mov edx, ebp
call fcn.00456b70
mov ecx, ebp
call fcn.00456b90
mov ecx, ebp
call fcn.00456b70
call fcn.00456b90
mov eax, ebp
call fcn.00456b30
nop
call fcn.00455270
jmp fcn.008881b0