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

Disassembly:
sub esp, 0x4f8
push ebx
push ebp
push esi
mov esi, dword [esp + 0x508]
mov eax, 0xaaaaaaab
push edi
mul dword [esi + 0x10]
shr edx, 2
lea ecx, [esi + 0x14]
mov dword [esp + 0x20], 0
je 0x4c4312
mov edi, ecx
mov dword [esp + 0x18], edi
mov ebp, dword [edi]
mov bx, word [edi]
shr ebp, 0x10
and ebp, 0xffff
xor esi, esi
mov si, word [edi + 4]
push ebp
mov ecx, 0xced988
call fcn.0053bf30
test eax, eax
je 0x4c432c
and ebx, 0xffff
mov ecx, 0xced988
push ebx
push esi
push ebp
mov dword [esp + 0x30], ebx
call fcn.0052df10
cmp esi, 0x96
jae 0x4c4337
mov eax, 0xcccccccd
mov ecx, 0xa
mul esi
mov ebx, edx
mov eax, esi
xor edx, edx
lea esi, [esp + 0x40]
div ecx
mov ecx, 0x4c
lea edi, [esp + 0x3d8]
mov dword [esp + 0x3d4], ebp
lea eax, [esp + 0x3d4]
push eax
mov dword [esp + 0x20], 0
shr ebx, 3
mov dword [esp + 0x14], edx
xor edx, edx
mov dword [esp + 0xbe], edx
mov dword [esp + 0xc2], edx
mov dword [esp + 0xc6], edx
mov byte [esp + 0xca], dl
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x3c]
push ecx
mov ecx, 0xced988
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x78]
test ecx, ecx
jle 0x4c42d3
mov eax, dword [esp + 0x10]
lea edx, [ebx + ebx*4]
lea eax, [eax + edx*2]
mov ecx, eax
shl ecx, 4
add ecx, eax
lea edx, [ecx*8 + 0xceda74]
mov dword [esp + 0x10], edx
xor eax, eax
mov ecx, 0x4c
mov dword [esp + 0x1ea], eax
lea esi, [esp + 0x170]
mov dword [esp + 0x1ee], eax
lea edi, [esp + 0x2a4]
mov dword [esp + 0x1f2], eax
mov dword [esp + 0x2a0], ebp
mov byte [esp + 0x1f6], al
lea edx, [esp + 0x30]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2a0]
mov dword [esp + 0x14], 0
push ecx
push edx
mov ecx, 0xced988
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x74]
test ecx, ecx
mov dword [esp + 0x2c], edx
jle 0x4c4258
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx - 8]
mov ecx, dword [esp + 0x24]
mov edx, dword [ebx - 0xc]
cmp ecx, eax
jl 0x4c41d5
cmp ebp, edx
jne 0x4c41de
xor eax, eax
mov dword [ebx - 0xc], eax
mov dword [ebx - 4], 0xffffffff
mov dword [ebx], 0xffffffff
mov dword [ebx - 8], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], eax
jmp 0x4c41de
cmp ebp, edx
jne 0x4c41de
sub eax, ecx
mov dword [ebx - 8], eax
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0x1ea], eax
inc ecx
mov dword [esp + 0x1ee], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1f2], eax
mov ecx, 0x4c
lea esi, [esp + 0x170]
lea edi, [esp + 0x2a4]
mov byte [esp + 0x1f6], al
mov dword [esp + 0x2a0], ebp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2a0]
lea edx, [esp + 0x30]
push ecx
push edx
mov ecx, 0xced988
add ebx, 0x88
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x74]
cmp ecx, edx
jl 0x4c41a3
mov edi, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0xba], edx
mov ebx, dword [esp + 0x1c]
add edi, 0x550
mov dword [esp + 0xbe], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc2], edx
mov ecx, 0x4c
lea esi, [esp + 0x40]
lea edi, [esp + 0x3d8]
mov byte [esp + 0xc6], dl
mov dword [esp + 0x3d4], ebp
lea eax, [esp + 0x3d4]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x38]
push eax
inc ebx
push ecx
mov ecx, 0xced988
mov dword [esp + 0x24], ebx
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x78]
cmp ebx, ecx
jl 0x4c4130
mov edi, dword [esp + 0x18]
mov ecx, 0xced988
call fcn.0052d360
mov edx, dword [esp + 0x50c]
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x20]
add edi, 6
mul dword [edx + 0x10]
inc ecx
mov dword [esp + 0x18], edi
shr edx, 2
cmp ecx, edx
mov dword [esp + 0x20], ecx
jb 0x4c4043
mov esi, dword [esp + 0x50c]
cmp dword [esi + 8], 2
jne 0x4c432c
cmp dword [esi + 0x1014], 4
jne 0x4c432c
mov eax, dword [esi + 0x1018]
mov dword [0x6d68d0], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4f8
ret
cmp esi, 0xc8
jb 0x4c42d7
cmp esi, 0xd1
ja 0x4c42d7
mov eax, esi
xor edx, edx
mov ecx, 0xc8
mov esi, dword [0x6d68b8]
div ecx
lea eax, [edx*8]
sub eax, edx
lea eax, [edx + eax*4]
shl eax, 2
movsx ecx, word [eax + 0xcf2a51]
sub esi, ecx
movsx ecx, word [eax + 0xcf2a53]
mov dword [0x6d68b8], esi
mov esi, dword [0x6d68bc]
sub esi, ecx
movsx ecx, word [eax + 0xcf2a55]
mov dword [0x6d68bc], esi
mov esi, dword [0x6d68c0]
sub esi, ecx
movsx ecx, word [eax + 0xcf2a57]
mov dword [0x6d68c0], esi
mov esi, dword [0x6d68c4]
sub esi, ecx
xor ecx, ecx
cmp edx, ecx
mov dword [0x6d68c4], esi
je 0x4c43d2
movsx ecx, word [eax + 0xcf2a59]
mov esi, dword [0x6d68c8]
sub esi, ecx
xor ecx, ecx
mov dword [0x6d68c8], esi
cmp dword [0x6d68b8], ecx
jge 0x4c43e0
mov dword [0x6d68b8], ecx
cmp dword [0x6d68bc], ecx
jge 0x4c43ee
mov dword [0x6d68bc], ecx
cmp dword [0x6d68c0], ecx
jge 0x4c43fc
mov dword [0x6d68c0], ecx
cmp dword [0x6d68c8], ecx
jge 0x4c440a
mov dword [0x6d68c8], ecx
cmp dword [0x6d68c4], ecx
jge 0x4c4418
mov dword [0x6d68c4], ecx
mov ecx, dword [eax + 0xcf2a1c]
cmp ebx, ecx
jl 0x4c44a6
cmp ebp, dword [eax + 0xcf2a18]
jne 0x4c44a6
mov esi, 1
cmp edx, esi
jne 0x4c4451
mov dword [0xcf2a8c], 0x64
mov dword [0xcf2a90], esi
mov dword [0xcf2aa0], esi
xor ebx, ebx
jmp 0x4c448b
xor ebx, ebx
cmp edx, ebx
jne 0x4c4479
mov edx, dword [0x6d6868]
push edx
call fcn.0052cf10
add esp, 4
mov dword [0xcf2a18], eax
mov dword [0xcf2a1c], esi
mov dword [0xcf2a2c], esi
jmp 0x4c448b
mov dword [eax + 0xcf2a18], ebx
mov dword [eax + 0xcf2a1c], ebx
mov dword [eax + 0xcf2a2c], ebx
cmp dword [0xcf9324], ebx
je 0x4c42d7
mov ecx, 0xced988
call fcn.0052cfe0
jmp 0x4c42d7
cmp ebp, dword [eax + 0xcf2a18]
jne 0x4c42d7
sub ecx, ebx
mov dword [eax + 0xcf2a1c], ecx
jmp 0x4c42d7