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

Disassembly:
sub esp, 0x8c
mov edx, dword [esp + 0x90]
push ebx
push ebp
push esi
mov ecx, dword [edx]
mov esi, dword [esp + 0xa0]
mov edx, dword [edx + 0x14]
push edi
mov ebp, dword [ecx + 0x68]
movsx edi, word [esi + 2]
mov ebx, dword [ecx + 0x2e4]
add edi, 4
cmp byte [ecx + 0x2e1], 0
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x80], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x34], 0
je 0x4cee08
test ebx, ebx
je 0x4cee08
xor ecx, ecx
test edi, edi
je 0x4ce494
mov ebp, dword [esp + 0xa8]
nop dword [eax]
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*8]
shl eax, 6
mov dword [ebp + ecx*8], eax
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*8 + 4]
shl eax, 6
mov dword [ebp + ecx*8 + 4], eax
inc ecx
cmp ecx, edi
jb 0x4ce470
mov ebp, dword [esp + 0x30]
cmp edx, dword [ebx + 0x44]
jae 0x4cedfb
mov ecx, dword [ebx + 0x48]
lea esi, [edx*4]
mov eax, dword [ecx + esi]
cmp eax, dword [ecx + esi + 4]
je 0x4cedfb
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 8
push dword [esp + 0x28]
call fcn.004bb520
add esp, 0x18
mov dword [esp + 0x40], eax
cmp dword [esp + 0x10], 0
jne 0x4cedc7
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 8
push dword [esp + 0x28]
call fcn.004bb520
add esp, 0x18
mov dword [esp + 0x20], eax
cmp dword [esp + 0x10], 0
jne 0x4cedc7
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 1
push dword [esp + 0x28]
call fcn.004bb520
add esp, 0x18
mov dword [esp + 0x44], eax
cmp dword [esp + 0x10], 0
jne 0x4cedc7
mov ecx, dword [ebx + 0x48]
mov edx, dword [ecx + esi]
mov esi, dword [ecx + esi + 4]
push edx
push ebp
sub esi, edx
call fcn.004b99b0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4cedc7
push esi
push ebp
call fcn.004b8f10
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4cedc7
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x10]
push eax
push 0
push dword [ebx]
push 0
push 4
push dword [esp + 0x28]
call fcn.004bb520
add esp, 0x18
mov dword [esp + 0x50], eax
cmp dword [esp + 0x10], 0
jne 0x4ced90
lea eax, [esp + 0x10]
push eax
push 0
push dword [ebx]
push 0
push 4
push dword [esp + 0x28]
call fcn.004bb520
add esp, 0x18
mov dword [esp + 0x54], eax
cmp dword [esp + 0x10], 0
jne 0x4ced90
lea eax, [esp + 0x10]
push eax
push 0
push dword [ebx]
push 0
push 4
push dword [esp + 0x28]
call fcn.004bb520
add esp, 0x18
mov dword [esp + 0x48], eax
cmp dword [esp + 0x10], 0
jne 0x4ced90
push ebp
call fcn.004b9140
movzx eax, ax
push ebp
mov dword [esp + 0x68], eax
call fcn.004b9140
movzx edx, ax
add esp, 8
cmp edx, esi
ja 0x4ced88
mov ecx, dword [esp + 0x60]
mov eax, ecx
and eax, 0xfff
mov dword [esp + 0x60], eax
shl eax, 2
cmp eax, esi
ja 0x4ced88
add edx, dword [esp + 0x5c]
mov dword [esp + 0x24], edx
test ecx, 0x8000
je 0x4ce681
mov edx, dword [ebp + 0x24]
mov eax, edx
mov ecx, dword [ebp]
sub eax, ecx
mov esi, dword [ebp + 0x20]
sub esi, ecx
cmp dword [esp + 0x24], eax
jae 0x4ce649
mov edx, dword [esp + 0x24]
add edx, ecx
lea eax, [esp + 0x80]
mov dword [ebp + 0x20], edx
push eax
push dword [ebx + 0x4c]
push ebp
call fcn.004d0050
mov ecx, dword [ebp + 0x20]
add esp, 0xc
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x64], eax
mov eax, dword [ebp]
sub ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, edx
sub ecx, eax
cmp esi, ecx
jae 0x4ce67e
lea edx, [eax + esi]
mov dword [ebp + 0x20], edx
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 4
push esi
call fcn.004bb520
add esp, 0x18
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x10], 0
jne 0x4ced62
lea eax, [esp + 0x10]
push eax
push 0
push edi
push 0
push 4
push esi
call fcn.004bb520
add esp, 0x18
mov edx, eax
cmp dword [esp + 0x10], 0
mov dword [esp + 0x34], edx
jne 0x4ced62
xor ecx, ecx
test edi, edi
je 0x4ce70d
mov esi, dword [esp + 0xa4]
mov ebx, dword [esp + 0x40]
add esi, 4
mov eax, dword [esi]
mov eax, dword [eax + ecx*8]
shl eax, 0x10
mov dword [ebx + ecx*8], eax
mov eax, dword [esi]
mov eax, dword [eax + ecx*8 + 4]
shl eax, 0x10
mov dword [ebx + ecx*8 + 4], eax
inc ecx
cmp ecx, edi
jb 0x4ce6e3
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0xa4]
jmp 0x4ce717
mov eax, dword [esp + 0xa4]
lea esi, [eax + 4]
cmp dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
jbe 0x4cebcc
nop word [eax + eax]
push ebp
call fcn.004b9140
push ebp
mov word [esp + 0x72], ax
call fcn.004b9140
movzx esi, ax
add esp, 8
mov dword [esp + 0x58], eax
mov dword [esp + 0x1c], esi
test esi, 0x8000
je 0x4ce84e
xor esi, esi
cmp dword [ebx], esi
jbe 0x4ce77e
mov edi, dword [esp + 0x50]
push ebp
call fcn.004b9140
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
cmp esi, dword [ebx]
jb 0x4ce765
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
test esi, 0x4000
je 0x4ce7dd
mov eax, dword [ebx]
xor esi, esi
test eax, eax
je 0x4ce7b1
mov edi, dword [esp + 0x54]
push ebp
call fcn.004b9140
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
mov eax, dword [ebx]
cmp esi, eax
jb 0x4ce796
mov edi, dword [esp + 0x18]
xor esi, esi
test eax, eax
je 0x4ce7d9
mov edi, dword [esp + 0x48]
nop dword [eax + eax]
push ebp
call fcn.004b9140
cwde
add esp, 4
shl eax, 2
mov dword [edi + esi*4], eax
inc esi
cmp esi, dword [ebx]
jb 0x4ce7c0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
push dword [esp + 0x48]
push dword [esp + 0x58]
push dword [esp + 0x58]
push dword [esp + 0x64]
push ebx
call fcn.004cf110
add esp, 0x14
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4ceba2
mov ecx, dword [ebp]
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x24]
sub eax, ecx
mov dword [esp + 0x98], eax
mov eax, edx
sub eax, ecx
cmp dword [esp + 0x24], eax
jae 0x4ce824
mov edx, dword [esp + 0x24]
add edx, ecx
mov dword [ebp + 0x20], edx
test esi, 0x2000
je 0x4ce884
lea eax, [esp + 0x38]
push eax
push dword [ebx + 0x4c]
push ebp
call fcn.004d0050
mov dword [esp + 0x78], eax
add esp, 0xc
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
jmp 0x4ce897
mov edx, esi
and edx, 0xfff
cmp edx, dword [ebx + 0x3c]
jae 0x4cec02
mov ecx, dword [ebx]
imul edx, ecx
lea eax, [ecx*4]
push eax
mov eax, dword [ebx + 0x40]
lea eax, [eax + edx*4]
push eax
push dword [esp + 0x58]
call fcn.005ad5b0
add esp, 0xc
jmp 0x4ce782
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], eax
test eax, eax
mov esi, eax
cmove esi, edi
push esi
push dword [ebx + 0x4c]
push ebp
call fcn.004cff00
push esi
push dword [ebx + 0x4c]
mov dword [esp + 0x84], eax
push ebp
call fcn.004cff00
mov edx, dword [esp + 0x40]
add esp, 0x18
mov ecx, eax
mov dword [esp + 0x58], ecx
test edx, edx
je 0x4ceb51
test ecx, ecx
je 0x4ceb51
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4ceb51
cmp edx, 0xffffffff
jne 0x4ce9b9
test edi, edi
je 0x4ceb51
mov ebx, dword [esp + 0x3c]
sub eax, ecx
mov edx, dword [esp + 0x34]
sub ecx, ebx
sub edx, ebx
mov dword [esp + 0x78], eax
mov ebp, ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x28], edi
mov edi, dword [ebp]
lea esi, [ecx + ebp]
mov eax, dword [esi + eax]
mov ebx, dword [edx + ebp]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x8c], eax
mov eax, dword [esi]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x8c]
lea ebp, [ebp + 4]
mov edx, dword [esp + 0x88]
add eax, edi
mov ecx, dword [esp + 0x2c]
mov dword [ebp - 4], eax
mov eax, dword [esp + 0x84]
add eax, ebx
sub dword [esp + 0x28], 1
mov dword [edx + ebp - 4], eax
mov eax, dword [esp + 0x78]
jne 0x4ce916
jmp 0x4ceb45
xor esi, esi
test edi, edi
je 0x4ce9fd
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
sub edi, edx
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x44]
mov byte [esi + ebp], 0
lea edx, [edx + 8]
mov eax, dword [edx + edi - 8]
inc esi
mov ecx, dword [edx + edi - 4]
mov dword [edx - 8], eax
mov dword [edx - 4], ecx
cmp esi, ebx
jb 0x4ce9d1
mov ebp, dword [esp + 0x30]
mov edi, ebx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x70]
xor esi, esi
cmp dword [esp + 0x38], esi
jbe 0x4cead3
mov ebp, eax
mov edi, ecx
mov eax, dword [esp + 0x18]
sub ebp, ecx
mov ecx, dword [esp + 0x38]
nop word [eax + eax]
movzx ebx, word [edx + esi*2]
cmp ebx, eax
jae 0x4ceabf
mov eax, dword [esp + 0x44]
mov byte [ebx + eax], 1
mov eax, dword [edi + ebp]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + ebx*8]
add eax, dword [esp + 0x90]
mov dword [ecx + ebx*8], eax
mov eax, dword [edi]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x28]
add dword [ecx + ebx*8 + 4], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
inc esi
add edi, 4
cmp esi, ecx
jb 0x4cea20
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
push dword [esp + 0x44]
push dword [esp + 0x44]
push dword [esp + 0x28]
push dword [esp + 0xb0]
call fcn.004d2320
add esp, 0x10
xor ebx, ebx
test edi, edi
je 0x4ceb4d
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x34]
sub ebp, eax
mov dword [esp + 0x78], ebp
lea edi, [eax + 4]
mov eax, dword [esp + 0x3c]
sub eax, esi
mov dword [esp + 0x2c], eax
mov ecx, dword [edi + ebp]
lea edi, [edi + 8]
mov eax, dword [esp + 0x20]
lea esi, [esi + 4]
sub ecx, dword [edi - 8]
mov edx, dword [esi - 4]
mov ebp, dword [esp + 0x2c]
mov eax, dword [eax + ebx*8]
inc ebx
sub eax, dword [edi - 0xc]
add dword [esi + ebp - 4], eax
lea eax, [ecx + edx]
mov ebp, dword [esp + 0x78]
mov dword [esi - 4], eax
cmp ebx, dword [esp + 0x18]
jb 0x4ceb13
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x4ceb70
push eax
push esi
call fcn.004bb3b0
add esp, 8
mov dword [esp + 0x6c], 0
push dword [esp + 0x70]
push esi
call fcn.004bb3b0
push dword [esp + 0x60]
push esi
call fcn.004bb3b0
mov ecx, dword [ebp + 0x24]
add esp, 0x10
mov edx, dword [ebp]
mov eax, ecx
mov esi, dword [esp + 0x98]
sub eax, edx
cmp esi, eax
jae 0x4ceb9f
lea ecx, [edx + esi]
mov dword [ebp + 0x20], ecx
mov ecx, dword [esp + 0x5c]
movzx eax, word [esp + 0x6a]
inc ecx
add dword [esp + 0x24], eax
mov dword [esp + 0x5c], ecx
cmp ecx, dword [esp + 0x60]
jb 0x4ce730
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x34]
lea esi, [eax + 4]
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x3c]
test byte [ebx + 0x2e8], 2
je 0x4cec0f
mov dword [ecx + edi*4 - 0x10], 0
add eax, 4
mov dword [edx + edi*4 - 0x10], 0
mov dword [ecx + edi*4 - 0xc], 0
mov dword [edx + edi*4 - 0xc], 0
jmp 0x4cec11
mov dword [esp + 0x10], 8
jmp 0x4ced62
mov eax, esi
test byte [ebx + 0x2e8], 0x10
je 0x4cec3c
mov dword [ecx + edi*4 - 8], 0
mov esi, eax
mov dword [edx + edi*4 - 8], 0
mov dword [ecx + edi*4 - 4], 0
mov dword [edx + edi*4 - 4], 0
mov ebx, dword [esp + 0x18]
xor edi, edi
test ebx, ebx
je 0x4cecb0
mov ebp, dword [esp + 0xa4]
mov esi, ecx
sub esi, dword [esp + 0x34]
mov eax, dword [edx + esi]
lea edx, [edx + 4]
mov ecx, dword [esp + 0xa8]
add eax, 0x200
sar eax, 0xa
add dword [ecx + edi*8], eax
mov eax, dword [edx - 4]
add eax, 0x200
sar eax, 0xa
add dword [ecx + edi*8 + 4], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + edi*8]
mov eax, dword [edx + esi - 4]
add eax, 0x8000
shr eax, 0x10
cwde
add dword [ecx], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + edi*8]
mov eax, dword [edx - 4]
add eax, 0x8000
inc edi
shr eax, 0x10
cwde
add dword [ecx + 4], eax
cmp edi, ebx
jb 0x4cec53
lea esi, [ebp + 4]
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0xa0]
test byte [eax + 0x2e8], 2
jne 0x4ced09
mov eax, dword [esi]
mov ecx, dword [eax + ebx*8 - 0x20]
mov eax, dword [eax + ebx*8 - 0x1c]
mov dword [edi + 0x48], eax
mov dword [edi + 0x44], ecx
mov eax, dword [esi]
mov ecx, dword [eax + ebx*8 - 0x18]
mov eax, dword [eax + ebx*8 - 0x14]
mov dword [edi + 0x4c], ecx
mov ecx, dword [esp + 0xa8]
mov dword [edi + 0x50], eax
mov eax, dword [ecx + ebx*8 - 0x18]
sub eax, dword [ecx + ebx*8 - 0x20]
add eax, 0x20
and eax, 0xffffffc0
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
mov dword [edi + 0x3c], eax
mov eax, dword [esp + 0x7c]
test byte [eax + 0x2e8], 0x10
jne 0x4ced62
mov eax, dword [esi]
mov ecx, dword [eax + ebx*8 - 0x10]
mov eax, dword [eax + ebx*8 - 0xc]
mov dword [edi + 0xb8], eax
mov dword [edi + 0xb4], ecx
mov eax, dword [esi]
mov ecx, dword [eax + ebx*8 - 8]
mov eax, dword [eax + ebx*8 - 4]
mov dword [edi + 0xbc], ecx
mov ecx, dword [esp + 0xa8]
mov dword [edi + 0xc0], eax
mov eax, dword [ecx + ebx*8 - 4]
sub eax, dword [ecx + ebx*8 - 0xc]
add eax, 0x20
and eax, 0xffffffc0
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
mov dword [edi + 0xb0], eax
push dword [esp + 0x3c]
mov ebx, dword [esp + 0x18]
push ebx
call fcn.004bb3b0
push dword [esp + 0x3c]
push ebx
call fcn.004bb3b0
add esp, 0x10
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
je 0x4ceda0
jmp 0x4ced96
mov dword [esp + 0x10], 8
mov ebx, dword [esp + 0x14]
xor eax, eax
push eax
push ebx
call fcn.004bb3b0
add esp, 8
push dword [esp + 0x50]
push ebx
call fcn.004bb3b0
push dword [esp + 0x5c]
push ebx
call fcn.004bb3b0
push dword [esp + 0x58]
push ebx
call fcn.004bb3b0
push ebp
call fcn.004b8fe0
add esp, 0x1c
push dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
push ebp
call fcn.004bb3b0
push dword [esp + 0x28]
push ebp
call fcn.004bb3b0
push dword [esp + 0x54]
push ebp
call fcn.004bb3b0
mov eax, dword [esp + 0x28]
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8c
ret
pop edi
pop esi
pop ebp
mov eax, 6
pop ebx
add esp, 0x8c
ret