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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov esi, dword [esp + 0x80]
mov dword [esp + 0x4c], 0xff
mov eax, 0xffffffff
cmp esi, 0x200
jb 0x4ec331
lea eax, [esp + 0x50]
lea ecx, [esp + 0x4c]
push 0
push dword [esp + 0x78]
push dword [esp + 0x78]
push eax
push ecx
push dword [esp + 0x90]
call fcn.004eb020
add esp, 0x18
cmp eax, 0xffffff88
ja 0x4ec331
mov dword [esp], eax
mov ebx, dword [esp + 0x50]
mov eax, 0xffffffd4
cmp ebx, dword [esp + 0x78]
ja 0x4ec331
mov edi, 1
mov ecx, ebx
shl edi, cl
mov ebp, 1
mov eax, edi
sar eax, 0x1f
shld eax, edi, 2
xor edx, edx
shld edx, ebp, cl
shl edi, 2
shl ebp, cl
test bl, 0x20
cmovne edx, ebp
mov ecx, 0
cmovne ebp, ecx
add ebp, edi
adc edx, eax
mov edi, dword [esp + 0x4c]
lea eax, [edi*2 + 2]
add eax, ebp
adc edx, 0
add eax, 0x13
adc edx, 0
and eax, 0xfffffffc
add eax, 0x204
adc edx, 0
cmp esi, eax
mov eax, 0xffffffd4
sbb ecx, edx
jb 0x4ec331
mov eax, 4
mov dword [esp + 0x1c], edi
mov ecx, ebx
shl eax, cl
mov edx, dword [esp + 0x7c]
lea ebp, [edx + 0x200]
lea edi, [eax + ebp]
add edi, 4
sub esi, eax
add esi, 0xfffffdfc
mov ecx, ebp
push esi
push edi
push ebx
push dword [esp + 0x28]
call fcn.004eb6f0
add esp, 0x10
cmp eax, 0xffffff88
ja 0x4ec331
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x74]
mov esi, ebx
mov ecx, dword [esp]
sub esi, ecx
mov ebp, dword [esp + 0x70]
lea edx, [ecx + ebp]
mov ecx, dword [esp + 0x7c]
cmp word [ecx + 0x202], 0
lea ecx, [edi + eax]
mov dword [esp + 0x38], ecx
lea eax, [edi + eax - 3]
mov dword [esp + 0x48], eax
je 0x4ebcb3
test esi, esi
je 0x4ebee0
mov dword [esp + 0x10], edx
lea eax, [edx + 4]
mov dword [esp + 0x14], eax
cmp esi, 4
jb 0x4ebeea
lea eax, [ebx + ebp]
add eax, 0xfffffffc
mov dword [esp + 0xc], eax
mov eax, dword [ebp + ebx - 4]
mov dword [esp + 4], eax
mov ecx, 0xffffffff
cmp eax, 0x1000000
jb 0x4ec198
shr eax, 0x18
bsr eax, eax
not eax
add eax, 9
mov dword [esp + 8], eax
mov ecx, esi
cmp esi, 0xffffff88
jbe 0x4ebf34
jmp 0x4ec198
lea ecx, [esp + 4]
push esi
call fcn.004ec580
add esp, 4
cmp eax, 0xffffff88
ja 0x4ec331
lea ecx, [esp + 0x2c]
lea edi, [esp + 4]
mov edx, edi
mov esi, dword [esp + 0x1c]
push esi
call fcn.004ec640
add esp, 4
lea ecx, [esp + 0x24]
mov edx, edi
push esi
call fcn.004ec640
add esp, 4
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
cmp edx, 0x20
ja 0x4ec48f
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x68]
lea esi, [ecx + 2]
jmp 0x4ebdb8
mov ecx, edx
shr ecx, 3
sub eax, ecx
and edx, 7
mov ebx, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
movzx ecx, byte [eax + edi*4 + 3]
mov dword [esp + 0x18], ecx
add edx, ecx
mov ecx, edx
neg cl
mov ebp, ebx
shr ebp, cl
mov ecx, dword [esp + 0x18]
and ebp, dword [ecx*4 + 0x8532e8]
movzx ecx, word [eax + edi*4]
movzx eax, byte [eax + edi*4 + 2]
add ebp, ecx
mov ecx, dword [esp]
mov byte [ecx], al
mov eax, dword [esp + 0x34]
movzx edi, byte [eax + esi*4 + 3]
add edx, edi
mov ecx, edx
neg cl
mov dword [esp + 0x18], ebx
shr ebx, cl
and ebx, dword [edi*4 + 0x8532e8]
movzx ecx, word [eax + esi*4]
add ebx, ecx
movzx ecx, byte [eax + esi*4 + 2]
mov esi, dword [esp]
mov eax, dword [esp + 0x1c]
mov byte [esi + 1], cl
add esi, 4
cmp edx, 0x20
ja 0x4ec4bc
mov dword [esp], esi
add esi, 0xfffffffe
cmp eax, dword [esp + 0x3c]
jae 0x4ebe05
mov dword [esp + 0x40], esi
mov esi, eax
mov ecx, dword [esp + 0x44]
sub esi, ecx
je 0x4ec2e4
mov ecx, edx
shr ecx, 3
mov edi, eax
sub edi, ecx
cmp edi, dword [esp + 0x44]
mov edi, edx
mov edx, 0
setb dl
mov dword [esp + 0x1c], edx
mov edx, edi
cmovb ecx, esi
lea esi, [ecx*8]
sub edx, esi
mov esi, dword [esp + 0x40]
jmp 0x4ebe15
mov ecx, edx
shr ecx, 3
and edx, 7
mov dword [esp + 0x1c], 0
sub eax, ecx
mov edi, dword [eax]
cmp esi, dword [esp + 0x48]
jae 0x4ec2ec
cmp dword [esp + 0x1c], 0
jne 0x4ec2ec
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
movzx ecx, word [eax + ebp*4]
mov dword [esp + 0x40], ecx
mov ch, byte [eax + ebp*4 + 2]
movzx eax, byte [eax + ebp*4 + 3]
add edx, eax
mov cl, dl
neg cl
mov esi, edi
shr edi, cl
and edi, dword [eax*4 + 0x8532e8]
mov eax, dword [esp]
mov byte [eax - 2], ch
mov eax, dword [esp + 0x34]
movzx ebp, byte [eax + ebx*4 + 3]
add edx, ebp
mov ecx, edx
neg cl
mov dword [esp + 0x18], esi
shr esi, cl
add edi, dword [esp + 0x40]
and esi, dword [ebp*4 + 0x8532e8]
movzx ecx, word [eax + ebx*4]
add esi, ecx
movzx ecx, byte [eax + ebx*4 + 2]
mov eax, dword [esp]
mov byte [eax - 1], cl
cmp edx, 0x21
jae 0x4ec49b
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x3c]
jae 0x4ebd39
mov ecx, eax
mov ebp, dword [esp + 0x44]
sub ecx, ebp
je 0x4ec2fe
mov ebx, edx
shr ebx, 3
mov dword [esp + 0x18], eax
sub dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebp
cmovb ebx, ecx
sub eax, ebx
shl ebx, 3
sub edx, ebx
mov ebx, dword [eax]
cmp dword [esp + 0x18], ebp
jae 0x4ebd45
jmp 0x4ec302
mov eax, 0xffffffb8
jmp 0x4ec331
mov dword [esp + 0xc], edx
movzx eax, byte [edx]
mov dword [esp + 4], eax
cmp esi, 2
je 0x4ebf08
cmp esi, 3
jne 0x4ebf15
movzx ecx, byte [edx + 2]
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [edx + 1]
shl ecx, 8
add ecx, eax
mov dword [esp + 4], ecx
movzx eax, byte [ebp + ebx - 1]
test eax, eax
je 0x4ec162
bsr eax, eax
xor eax, 0x1f
shl esi, 3
sub eax, esi
add eax, 9
mov dword [esp + 8], eax
lea ecx, [esp + 0x2c]
lea edi, [esp + 4]
mov edx, edi
mov esi, dword [esp + 0x1c]
push esi
call fcn.004ec640
add esp, 4
lea ecx, [esp + 0x24]
mov edx, edi
push esi
call fcn.004ec640
add esp, 4
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
cmp edx, 0x20
ja 0x4ec495
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x68]
lea edi, [eax + 2]
jmp 0x4ec01b
mov eax, edx
shr eax, 3
sub ebp, eax
and edx, 7
mov dword [esp + 8], edx
mov ebx, dword [ebp]
mov dword [esp + 4], ebx
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0x18]
movzx ecx, word [eax + esi*4]
mov dword [esp + 0x20], ecx
mov ch, byte [eax + esi*4 + 2]
movzx eax, byte [eax + esi*4 + 3]
mov ebp, ebx
mov cl, dl
shl ebp, cl
add edx, eax
mov cl, al
neg cl
shr ebp, cl
mov eax, dword [esp]
mov byte [eax], ch
mov esi, dword [esp + 0x1c]
movzx eax, byte [esi + edi*4 + 3]
mov ecx, edx
add edx, eax
shl ebx, cl
neg al
mov ecx, eax
shr ebx, cl
mov ecx, dword [esp + 0x3c]
add ebp, dword [esp + 0x20]
movzx eax, word [esi + edi*4]
add ebx, eax
movzx eax, byte [esi + edi*4 + 2]
mov edi, dword [esp]
mov dword [esp + 8], edx
mov byte [edi + 1], al
add edi, 4
cmp edx, 0x20
ja 0x4ec4f1
lea eax, [edi - 2]
mov dword [esp + 0x20], eax
cmp ecx, dword [esp + 0x40]
mov dword [esp], edi
jae 0x4ec064
mov esi, ecx
mov eax, dword [esp + 0x34]
sub esi, eax
je 0x4ec170
mov eax, edx
shr eax, 3
mov edi, ecx
sub edi, eax
cmp edi, dword [esp + 0x34]
mov edi, ebx
mov ebx, 0
setb bl
mov dword [esp + 0x44], ebx
mov ebx, edi
cmovb eax, esi
lea esi, [eax*8]
sub edx, esi
jmp 0x4ec074
mov eax, edx
shr eax, 3
and edx, 7
mov dword [esp + 0x44], 0
sub ecx, eax
mov dword [esp + 8], edx
mov dword [esp + 0x3c], ecx
mov edi, dword [ecx]
mov dword [esp + 4], edi
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x48]
jae 0x4ec16c
cmp dword [esp + 0x44], 0
jne 0x4ec16c
mov ecx, dword [esp + 0x18]
movzx eax, word [ecx + ebp*4]
mov dword [esp + 0x20], eax
movzx eax, byte [ecx + ebp*4 + 3]
mov ecx, edx
add edx, eax
mov esi, edi
shl esi, cl
neg al
mov ecx, eax
shr esi, cl
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + ebp*4 + 2]
add esi, dword [esp + 0x20]
mov ecx, dword [esp]
mov byte [ecx - 2], al
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + ebx*4 + 3]
mov ecx, edx
add edx, eax
mov ebp, dword [esp + 0x1c]
movzx ebp, word [ebp + ebx*4]
mov dword [esp + 0x20], ebp
shl edi, cl
neg al
mov ecx, eax
shr edi, cl
add edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + ebx*4 + 2]
mov ecx, dword [esp]
mov byte [ecx - 1], al
cmp edx, 0x21
jae 0x4ec4dc
mov ebp, dword [esp + 0x3c]
cmp ebp, dword [esp + 0x40]
jae 0x4ebf9c
mov ecx, ebp
mov eax, dword [esp + 0x34]
sub ecx, eax
je 0x4ec151
mov ebx, edx
shr ebx, 3
mov eax, ebp
sub eax, ebx
cmp eax, dword [esp + 0x34]
cmovb ebx, ecx
sub ebp, ebx
shl ebx, 3
sub edx, ebx
mov dword [esp + 8], edx
mov ebx, dword [ebp]
mov dword [esp + 4], ebx
cmp eax, dword [esp + 0x34]
jae 0x4ebfb1
mov dword [esp + 0xc], ebp
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], edi
mov ebp, dword [esp]
jmp 0x4ec180
mov eax, 0xffffffec
jmp 0x4ec331
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], ebx
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
add eax, 0xfffffffe
mov ecx, 0xffffffba
mov dword [esp + 0x38], eax
cmp ebp, eax
mov eax, dword [esp + 0x68]
jbe 0x4ec19f
mov eax, ecx
jmp 0x4ec331
mov esi, ebp
sub esi, eax
inc ebp
jmp 0x4ec1d1
mov eax, edx
shr eax, 3
sub ecx, eax
mov dword [esp + 0xc], ecx
and edx, 7
mov dword [esp + 8], edx
mov eax, dword [ecx]
mov dword [esp + 4], eax
add esi, 2
lea eax, [ebp + 2]
inc ebp
cmp ebp, dword [esp + 0x38]
mov ebp, eax
ja 0x4ec32c
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 4]
mov ecx, edx
shl eax, cl
movzx ecx, byte [ebx + edi*4 + 3]
add edx, ecx
neg cl
shr eax, cl
movzx ecx, word [ebx + edi*4]
movzx ebx, byte [ebx + edi*4 + 2]
add eax, ecx
mov dword [esp + 8], edx
mov dword [esp + 0x2c], eax
mov byte [ebp - 1], bl
mov edx, dword [esp + 8]
cmp edx, 0x20
ja 0x4ec547
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x14]
jae 0x4ec246
mov edi, dword [esp + 0x10]
mov eax, ecx
sub eax, edi
je 0x4ec25a
mov ebx, edx
shr ebx, 3
mov dword [esp + 0x20], ebp
mov ebp, ecx
sub ebp, ebx
cmp ebp, edi
mov ebp, dword [esp + 0x20]
cmovb ebx, eax
sub ecx, ebx
mov dword [esp + 0xc], ecx
shl ebx, 3
sub edx, ebx
jmp 0x4ec254
mov eax, edx
shr eax, 3
sub ecx, eax
mov dword [esp + 0xc], ecx
and edx, 7
mov eax, dword [ecx]
mov dword [esp + 4], eax
cmp ebp, dword [esp + 0x38]
ja 0x4ec32c
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 4]
mov ecx, edx
shl eax, cl
movzx ecx, byte [ebx + edi*4 + 3]
add edx, ecx
neg cl
shr eax, cl
movzx ecx, word [ebx + edi*4]
movzx ebx, byte [ebx + edi*4 + 2]
add eax, ecx
mov dword [esp + 8], edx
mov dword [esp + 0x24], eax
mov byte [ebp], bl
mov edx, dword [esp + 8]
cmp edx, 0x20
ja 0x4ec55c
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x14]
jae 0x4ec1a6
mov edi, dword [esp + 0x10]
mov eax, ecx
sub eax, edi
je 0x4ec1be
mov ebx, edx
shr ebx, 3
mov dword [esp + 0x20], ebp
mov ebp, ecx
sub ebp, ebx
cmp ebp, edi
mov ebp, dword [esp + 0x20]
cmovb ebx, eax
sub ecx, ebx
mov dword [esp + 0xc], ecx
shl ebx, 3
sub edx, ebx
jmp 0x4ec1b4
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 4], edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], ebx
jmp 0x4ec319
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], esi
mov esi, dword [esp]
mov eax, dword [esp + 0x38]
add eax, 0xfffffffe
mov dword [esp + 0x38], eax
cmp esi, eax
mov eax, dword [esp + 0x68]
jbe 0x4ec339
mov eax, 0xffffffba
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esi
sub ecx, eax
inc esi
jmp 0x4ec36a
mov eax, edx
shr eax, 3
sub ecx, eax
mov dword [esp + 0xc], ecx
and edx, 7
mov dword [esp + 8], edx
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov ecx, dword [esp]
add ecx, 2
lea eax, [esi + 2]
inc esi
cmp esi, dword [esp + 0x38]
mov esi, eax
ja 0x4ec32c
mov dword [esp], ecx
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov edi, esi
movzx esi, word [ebx + ecx*4]
movzx eax, byte [ebx + ecx*4 + 2]
movzx ebp, byte [ebx + ecx*4 + 3]
mov ebx, dword [esp + 4]
add edx, ebp
mov ecx, edx
neg cl
shr ebx, cl
and ebx, dword [ebp*4 + 0x8532e8]
add ebx, esi
mov dword [esp + 8], edx
mov dword [esp + 0x2c], ebx
mov byte [edi - 1], al
mov edx, dword [esp + 8]
cmp edx, 0x20
ja 0x4ec50d
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x14]
jae 0x4ec3e9
mov esi, dword [esp + 0x10]
mov eax, ecx
sub eax, esi
je 0x4ec3e5
mov ebx, edx
shr ebx, 3
mov ebp, ecx
sub ebp, ebx
cmp ebp, esi
cmovb ebx, eax
sub ecx, ebx
mov dword [esp + 0xc], ecx
shl ebx, 3
sub edx, ebx
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov esi, edi
jmp 0x4ec3ff
mov esi, edi
mov eax, edx
shr eax, 3
sub ecx, eax
mov dword [esp + 0xc], ecx
and edx, 7
mov eax, dword [ecx]
mov dword [esp + 4], eax
cmp esi, dword [esp + 0x38]
ja 0x4ec32c
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
movzx esi, word [ebx + ecx*4]
movzx eax, byte [ebx + ecx*4 + 2]
movzx ebp, byte [ebx + ecx*4 + 3]
mov ebx, dword [esp + 4]
add edx, ebp
mov ecx, edx
neg cl
shr ebx, cl
and ebx, dword [ebp*4 + 0x8532e8]
add ebx, esi
mov esi, edi
mov dword [esp + 8], edx
mov dword [esp + 0x24], ebx
mov byte [edi], al
mov edx, dword [esp + 8]
cmp edx, 0x20
ja 0x4ec522
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x14]
jae 0x4ec340
mov esi, dword [esp + 0x10]
mov eax, ecx
sub eax, esi
je 0x4ec488
mov ebx, edx
shr ebx, 3
mov ebp, ecx
sub ebp, ebx
cmp ebp, esi
cmovb ebx, eax
sub ecx, ebx
mov dword [esp + 0xc], ecx
shl ebx, 3
sub edx, ebx
mov dword [esp + 8], edx
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov esi, edi
jmp 0x4ec358
mov esi, dword [esp + 0x68]
jmp 0x4ec4bf
mov eax, dword [esp + 0x68]
jmp 0x4ec4f6
mov dword [esp + 8], edx
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0xc], 0x853368
jmp 0x4ec316
add esi, 0xfffffffe
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], ebx
mov dword [esp + 0xc], 0x853368
jmp 0x4ec319
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0xc], 0x853368
jmp 0x4ec15d
add edi, 0xfffffffe
mov eax, edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], ebx
mov dword [esp + 0xc], 0x853368
mov ebp, eax
jmp 0x4ec180
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
lea eax, [ecx + eax*4]
add eax, 2
mov ecx, 2
jmp 0x4ec538
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax*4]
add eax, 2
inc esi
mov edi, esi
mov ecx, 3
movzx eax, byte [eax]
mov byte [edi], al
mov eax, ecx
add eax, dword [esp]
jmp 0x4ec331
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
lea eax, [ecx + eax*4]
add eax, 2
mov ecx, 2
jmp 0x4ec570
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax*4]
add eax, 2
inc ebp
mov ecx, 3
movzx eax, byte [eax]
mov byte [ebp], al
add ecx, esi
jmp 0x4ec198