Function at 0x4c3160
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x14cc
call fcn.006143b0
push esi
mov esi, dword [esp + 0x14d4]
mov eax, 0x88888889
mul dword [esi + 0x10]
shr edx, 4
test dx, dx
jbe 0x4c3b84
mov ecx, dword [0xced98c]
add esi, 0x18
push ebx
and edx, 0xffff
push ebp
push edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x44], edx
mov bp, word [esi - 4]
mov ax, word [esi]
mov bx, word [esi - 2]
mov edi, ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], ebp
and ebp, 0xffff
push ecx
mov ecx, 0xced988
mov word [esp + 0x28], ax
mov dword [esp + 0x44], ebx
mov dword [esp + 0x14], ebp
call fcn.00487810
mov ecx, dword [0xced98c]
mov dword [esp + 0x28], eax
cmp eax, ecx
je 0x4c31f0
mov edx, dword [esp + 0x10]
cmp edx, dword [eax + 0xc]
jl 0x4c31f0
lea eax, [esp + 0x28]
jmp 0x4c31f8
mov dword [esp + 0x48], ecx
lea eax, [esp + 0x48]
cmp dword [eax], edi
je 0x4c3b6b
xor eax, eax
mov ecx, 0x4c
mov dword [esp + 0x108e], eax
lea esi, [esp + 0x1014]
mov dword [esp + 0x1092], eax
lea edi, [esp + 0x1278]
mov dword [esp + 0x1096], eax
mov dword [esp + 0x1274], ebp
mov byte [esp + 0x109a], al
lea edx, [esp + 0x7c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1274]
push ecx
push edx
mov ecx, 0xced988
call fcn.00474ae0
mov ecx, eax
lea edi, [esp + 0xee4]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
lea esi, [eax + 0x10]
mov eax, dword [esp + 0x24]
mov ecx, 0x4c
cmp ax, 0x96
mov dword [esp + 0x34], edx
rep movsd dword es:[edi], dword [esi]
jae 0x4c3a81
mov eax, dword [0x62d4c4]
add eax, 0x3e
push eax
call fcn.00575a50
mov edx, dword [esp + 0x30]
xor ecx, ecx
mov eax, 0x66666667
add esp, 4
mov cx, word [edx]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov esi, edx
mov ecx, 0xa
cdq
idiv ecx
cmp word [esp + 0x20], 0x675
mov dword [esp + 0x24], esi
mov ecx, edx
mov dword [esp + 0x28], ecx
jne 0x4c350b
mov eax, esi
and eax, 0xffff
lea edx, [eax + eax*4]
mov eax, ecx
and eax, 0xffff
lea eax, [eax + edx*2]
mov ebx, eax
shl ebx, 4
add ebx, eax
shl ebx, 3
mov eax, dword [ebx + 0xceda68]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x4c350b
xor ecx, ecx
lea esi, [esp + 0x1bc]
mov dword [esp + 0x236], ecx
lea edi, [esp + 0xc80]
mov dword [esp + 0x23a], ecx
mov dword [esp + 0xc7c], eax
mov dword [esp + 0x23e], ecx
lea edx, [esp + 0xc7c]
mov byte [esp + 0x242], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x64]
push edx
push eax
mov ecx, 0xced988
mov dword [esp + 0x18], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
test ecx, ecx
mov dword [esp + 0x3c], edx
jle 0x4c3503
lea eax, [ebx + 0xceda6c]
mov dword [esp + 0x14], eax
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x496], ecx
lea esi, [esp + 0x41c]
mov dword [esp + 0x49a], ecx
lea edi, [esp + 0xa18]
mov dword [esp + 0x49e], ecx
mov dword [esp + 0xa14], edx
mov byte [esp + 0x4a2], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0xa14]
lea ecx, [esp + 0x74]
push eax
push ecx
mov ecx, 0xced988
mov dword [esp + 0x20], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x74]
test ecx, ecx
jle 0x4c3482
mov ebx, dword [esp + 0x14]
xor eax, eax
mov ecx, 0x12
mov dword [ebx - 4], eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
lea edi, [ebx + 0x24]
mov dword [ebx + 0x10], eax
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x496], edx
inc ecx
mov dword [esp + 0x49a], edx
mov dword [esp + 0x18], ecx
stosb byte es:[edi], al
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x49e], edx
mov ecx, 0x4c
lea esi, [esp + 0x41c]
lea edi, [esp + 0xa18]
mov byte [esp + 0x4a2], dl
mov dword [esp + 0xa14], eax
lea edx, [esp + 0x74]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xa14]
add ebx, 0x88
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 [esp + 0x18]
mov dword [esp + 0x3c], edx
mov edx, dword [eax + 0x74]
cmp ecx, edx
jl 0x4c33e9
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x236], edx
mov ebx, dword [esp + 0x10]
add eax, 0x550
mov dword [esp + 0x23a], edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x23e], edx
mov ecx, 0x4c
lea esi, [esp + 0x1bc]
lea edi, [esp + 0xc80]
mov byte [esp + 0x242], dl
mov dword [esp + 0xc7c], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xc7c]
lea edx, [esp + 0x64]
inc ebx
push ecx
push edx
mov ecx, 0xced988
mov dword [esp + 0x18], ebx
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
cmp ebx, ecx
mov dword [esp + 0x3c], edx
jl 0x4c3372
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov eax, esi
and ecx, 0xffff
and eax, 0xffff
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], eax
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
mov ebx, eax
mov dword [esp + 0x10], eax
shl ebx, 4
add ebx, eax
shl ebx, 3
cmp dword [ebx + 0xceda68], ebp
jne 0x4c3803
xor ecx, ecx
lea esi, [esp + 0x1144]
mov dword [esp + 0x11be], ecx
lea edi, [esp + 0x13ac]
mov dword [esp + 0x11c2], ecx
mov dword [esp + 0x13a8], ebp
mov dword [esp + 0x11c6], ecx
lea edx, [esp + 0x13a8]
mov byte [esp + 0x11ca], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x84]
push edx
push eax
mov ecx, 0xced988
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x108]
cmp ecx, 1
mov dword [esp + 0x34], edx
jle 0x4c3803
xor eax, eax
mov ecx, 0x4c
mov dword [esp + 0x366], eax
lea esi, [esp + 0x2ec]
mov dword [esp + 0x36a], eax
lea edi, [esp + 0xb4c]
mov dword [esp + 0x36e], eax
mov dword [esp + 0xb48], ebp
mov byte [esp + 0x372], al
lea edx, [esp + 0x6c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xb48]
mov dword [esp + 0x20], 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 + 0x78]
test ecx, ecx
mov dword [esp + 0x34], edx
jle 0x4c3b36
mov eax, dword [esp + 0x10]
lea ecx, [ebx + 0xceda6c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
xor edx, edx
mov ecx, 0x4c
mov dword [esp + 0x5c6], edx
lea esi, [esp + 0x54c]
mov dword [esp + 0x5ca], edx
lea edi, [esp + 0x8e4]
mov dword [esp + 0x5ce], edx
mov dword [esp + 0x8e0], ebp
mov byte [esp + 0x5d2], dl
lea eax, [esp + 0x8e0]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x5c]
push eax
push ecx
mov ecx, 0xced988
mov dword [esp + 0x24], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x74]
test ecx, ecx
jle 0x4c3775
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
and eax, 0xffff
mov dword [esp + 0x10], eax
jmp 0x4c36bd
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xfc4]
mov dword [ebx - 4], ebp
mov dword [ebx], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 4], edx
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x10], ecx
lea ecx, [ebx + 0x24]
mov edx, dword [eax + 6]
mov eax, dword [eax + 2]
push edx
push eax
push ecx
push esi
push ebp
mov ecx, 0xced988
call fcn.00543bf0
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x5c6], edx
inc ecx
add ebx, 0x88
inc esi
mov dword [esp + 0x5ca], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x5ce], edx
mov ecx, 0x4c
lea esi, [esp + 0x54c]
lea edi, [esp + 0x8e4]
mov byte [esp + 0x5d2], dl
mov dword [esp + 0x8e0], ebp
lea eax, [esp + 0x8e0]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x5c]
push eax
push ecx
mov ecx, 0xced988
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x74]
cmp edx, ecx
jl 0x4c36b5
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add eax, 0xa
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x366], eax
add ecx, 0x550
mov dword [esp + 0x36a], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x36e], eax
mov ecx, 0x4c
lea esi, [esp + 0x2ec]
lea edi, [esp + 0xb4c]
mov byte [esp + 0x372], al
mov dword [esp + 0xb48], ebp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xb48]
lea edx, [esp + 0x6c]
inc ebx
push ecx
push edx
mov ecx, 0xced988
mov dword [esp + 0x28], ebx
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
cmp ebx, ecx
mov dword [esp + 0x34], edx
jl 0x4c362f
jmp 0x4c3b36
mov eax, dword [ebx + 0xceda68]
test eax, eax
jne 0x4c3b36
xor eax, eax
mov ecx, 0x4c
mov dword [esp + 0x6f6], eax
lea esi, [esp + 0x67c]
mov dword [esp + 0x6fa], eax
lea edi, [esp + 0x7b0]
mov dword [esp + 0x6fe], eax
mov dword [esp + 0x7ac], ebp
mov byte [esp + 0x702], al
lea edx, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x7ac]
mov dword [esp + 0x20], 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 + 0x78]
test ecx, ecx
mov dword [esp + 0x34], edx
jle 0x4c3b36
mov eax, dword [esp + 0x10]
lea ecx, [ebx + 0xceda6c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
xor edx, edx
mov ecx, 0x4c
mov dword [esp + 0x106], edx
lea esi, [esp + 0x8c]
mov dword [esp + 0x10a], edx
lea edi, [esp + 0xdb4]
mov dword [esp + 0x10e], edx
mov dword [esp + 0xdb0], ebp
mov byte [esp + 0x112], dl
lea eax, [esp + 0xdb0]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x54]
push eax
push ecx
mov ecx, 0xced988
mov dword [esp + 0x24], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x74]
test ecx, ecx
jle 0x4c39f4
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
and eax, 0xffff
mov dword [esp + 0x10], eax
jmp 0x4c3920
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xfc4]
mov esi, dword [esp + 0x2c]
mov dword [ebx - 4], ebp
mov dword [ebx], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 4], edx
mov dword [ebx + 8], eax
mov dword [ebx + 0x10], ecx
mov edx, dword [esi + 6]
mov eax, dword [esi + 2]
push edx
lea ecx, [ebx + 0x24]
push eax
push ecx
push edi
push ebp
mov ecx, 0xced988
call fcn.00543bf0
lea eax, [esi + 0xa]
lea edx, [ebx + 0x5d]
add ebx, 0x88
lea esi, [esp + 0x8c]
mov ecx, dword [eax]
mov dword [esp + 0xdb0], ebp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
xor ecx, ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x106], ecx
mov dword [edx + 0xc], eax
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10a], ecx
inc edx
inc edi
mov dword [esp + 0x10e], ecx
mov dword [esp + 0x38], edi
mov byte [esp + 0x112], cl
mov dword [esp + 0x1c], edx
mov ecx, 0x4c
lea edi, [esp + 0xdb4]
lea edx, [esp + 0xdb0]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x54]
push edx
push eax
mov ecx, 0xced988
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x34], edx
mov edx, dword [eax + 0x74]
cmp ecx, edx
jl 0x4c3918
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
xor edx, edx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x6f6], edx
add edi, 0xa
mov dword [esp + 0x6fa], edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x6fe], edx
add eax, 0x550
mov ecx, 0x4c
lea esi, [esp + 0x67c]
lea edi, [esp + 0x7b0]
mov byte [esp + 0x702], dl
mov dword [esp + 0x7ac], ebp
mov dword [esp + 0x14], eax
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x7ac]
lea ecx, [esp + 0x4c]
push eax
inc ebx
push ecx
mov ecx, 0xced988
mov dword [esp + 0x28], ebx
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x78]
cmp ebx, ecx
jl 0x4c3892
jmp 0x4c3b36
cmp ax, 0xc8
jb 0x4c3ae5
cmp ax, 0xd1
ja 0x4c3ae5
and eax, 0xffff
mov ecx, 0xc8
cdq
idiv ecx
mov ecx, dword [esp + 0xfc4]
and ebx, 0xffff
and edx, 0xffff
mov eax, edx
lea edx, [eax*8]
sub edx, eax
lea eax, [eax + edx*4]
shl eax, 2
mov dword [eax + 0xcf2a18], ebp
mov dword [eax + 0xcf2a1c], ebx
mov dword [eax + 0xcf2a2c], ecx
mov eax, dword [0xcf9324]
test eax, eax
je 0x4c3b36
mov ecx, 0xced988
call fcn.0052cfe0
jmp 0x4c3b36
cmp ax, 0x12c
jb 0x4c3b36
cmp ax, 0x143
ja 0x4c3b36
and eax, 0xffff
mov ecx, 0x12c
cdq
idiv ecx
and edx, 0xffff
lea eax, [edx + edx*2]
mov edx, dword [esp + 0xfc4]
lea eax, [eax + eax*8]
shl eax, 2
and ebx, 0xffff
mov dword [eax + 0xcf2d88], ebp
mov dword [eax + 0xcf2d94], 1
mov dword [eax + 0xcf2d8c], ebx
mov dword [eax + 0xcf2d90], edx
mov eax, dword [esp + 0x14e0]
cmp dword [eax + 8], 2
jne 0x4c3b57
cmp dword [eax + 0x1014], 4
jne 0x4c3b57
mov eax, dword [eax + 0x1018]
mov dword [0x6d68d0], eax
mov ecx, 0xced988
call fcn.0052d360
mov ecx, dword [0xced98c]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
add esi, 0x1e
dec eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x44], eax
jne 0x4c31a0
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x14cc
ret