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

Disassembly:
sub esp, 0x484
mov eax, dword [0x517490]
xor eax, esp
mov dword [esp + 0x480], eax
mov eax, dword [esp + 0x48c]
lea ecx, [esp + 0x38]
push ebx
push ebp
mov ebp, dword [esp + 0x49c]
push esi
push edi
push dword [esp + 0x4a0]
mov edi, dword [esp + 0x49c]
mov dword [esp + 0x34], eax
xor eax, eax
mov ebx, eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebp
mov esi, eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], eax
call fcn.004ba873
call fcn.004c2a7f
mov dword [esp + 0x68], eax
test edi, edi
jne 0x4c7c98
call fcn.004c2a7f
mov dword [eax], 0x16
call fcn.004c40ce
cmp byte [esp + 0x54], bl
je 0x4c7c90
mov eax, dword [esp + 0x50]
and dword [eax + 0x70], 0xfffffffd
or eax, 0xffffffff
jmp 0x4c85fb
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x4c7c72
xor edx, edx
mov eax, edx
mov dword [esp + 0x3c], edx
mov edi, edx
mov dword [esp + 0x58], edx
movzx edx, word [ecx]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
test dx, dx
je 0x4c85ec
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x70], 0x58
mov dword [esp + 0x78], 0x64
mov dword [esp + 0x6c], 0x69
mov dword [esp + 0x7c], 0x6f
add ecx, 2
mov dword [esp + 0x30], ecx
test eax, eax
js 0x4c85ec
push 0x58
lea eax, [edx - 0x20]
pop ebp
cmp ax, bp
ja 0x4c7d0f
movzx eax, dx
movsx eax, byte [eax + 0x4ec938]
and eax, 0xf
jmp 0x4c7d11
xor eax, eax
mov ebp, dword [esp + 0x3c]
movsx ebp, byte [ebp + eax*8 + 0x4ec958]
mov eax, ebp
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x14]
sar eax, 4
mov dword [esp + 0x3c], eax
cmp eax, 7
ja case.default.0x4c7d37
jmp dword [eax*4 + 0x4c863e]
xor eax, eax
or dword [esp + 0x18], 0xffffffff
mov ebx, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x28], eax
jmp case.default.0x4c7d37
movzx eax, dx
push 0x20
pop edx
sub eax, edx
je 0x4c7d9c
sub eax, 3
je 0x4c7d94
sub eax, 8
je 0x4c7d8f
dec eax
dec eax
je 0x4c7d8a
sub eax, 3
jne case.default.0x4c7d37
or ebx, 8
jmp 0x4c7d9f
or ebx, 4
jmp 0x4c7d9f
or ebx, 1
jmp 0x4c7d9f
or ebx, 0x80
jmp 0x4c7d9f
or ebx, 2
mov dword [esp + 0x10], ebx
jmp case.default.0x4c7d37
push 0x2a
pop eax
cmp dx, ax
jne 0x4c7dd8
mov eax, dword [ebp]
add ebp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 0x34], eax
test eax, eax
jns case.default.0x4c7d37
or ebx, 4
neg eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x34], eax
jmp case.default.0x4c7d37
imul ecx, dword [esp + 0x34], 0xa
movzx eax, dx
add ecx, 0xffffffd0
add eax, ecx
mov dword [esp + 0x34], eax
jmp 0x4c85d4
xor eax, eax
mov dword [esp + 0x18], eax
jmp case.default.0x4c7d37
push 0x2a
pop eax
cmp dx, ax
jne 0x4c7e21
mov eax, dword [ebp]
add ebp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], eax
test eax, eax
jns case.default.0x4c7d37
or dword [esp + 0x18], 0xffffffff
jmp case.default.0x4c7d37
imul ecx, dword [esp + 0x18], 0xa
movzx eax, dx
add ecx, 0xffffffd0
add eax, ecx
mov dword [esp + 0x18], eax
jmp 0x4c85d4
movzx eax, dx
cmp eax, 0x49
je 0x4c7e84
cmp eax, 0x68
je 0x4c7e7a
push 0x6c
pop edx
cmp eax, edx
je 0x4c7e5f
cmp eax, 0x77
jne case.default.0x4c7d37
or ebx, 0x800
jmp 0x4c7d9f
cmp word [ecx], dx
jne 0x4c7e72
add ecx, 2
or ebx, 0x1000
jmp 0x4c7d9f
or ebx, 0x10
jmp 0x4c7d9f
push 0x20
pop eax
or ebx, eax
jmp 0x4c7d9f
movzx eax, word [ecx]
cmp eax, 0x36
jne 0x4c7ea1
cmp word [ecx + 2], 0x34
jne 0x4c7ea1
add ecx, 4
or ebx, 0x8000
jmp 0x4c7d9f
cmp eax, 0x33
jne 0x4c7ebb
cmp word [ecx + 2], 0x32
jne 0x4c7ebb
add ecx, 4
and ebx, 0xffff7fff
jmp 0x4c7d9f
cmp ax, word [esp + 0x78]
je case.default.0x4c7d37
cmp ax, word [esp + 0x6c]
je case.default.0x4c7d37
cmp ax, word [esp + 0x7c]
je case.default.0x4c7d37
cmp eax, 0x75
je case.default.0x4c7d37
cmp eax, 0x78
je case.default.0x4c7d37
cmp ax, word [esp + 0x70]
je case.default.0x4c7d37
xor eax, eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x28], 1
push eax
push dword [esp + 0x30]
push edx
call fcn.004c865e
add esp, 0xc
jmp 0x4c85d4
push 0x64
movzx eax, dx
pop ecx
cmp eax, ecx
jg 0x4c8114
je 0x4c819c
cmp eax, 0x53
jg 0x4c802f
je 0x4c7fab
sub eax, 0x41
je 0x4c7f52
dec eax
dec eax
je 0x4c7f91
dec eax
dec eax
je 0x4c7f52
dec eax
dec eax
jne 0x4c844d
push 0x20
pop eax
add edx, eax
mov dword [esp + 0x5c], 1
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x18]
lea esi, [esp + 0x90]
or ebx, 0x40
mov ecx, 0x200
mov dword [esp + 0x10], ebx
mov ebp, ecx
test eax, eax
jns 0x4c81d9
mov dword [esp + 0x18], 6
jmp 0x4c8224
test ebx, 0x830
jne 0x4c804f
push 0x20
pop eax
or ebx, eax
mov dword [esp + 0x10], ebx
jmp 0x4c804f
test ebx, 0x830
jne 0x4c7fbc
push 0x20
pop eax
or ebx, eax
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + 0x18]
mov ecx, 0x7fffffff
mov edi, dword [esp + 0x14]
cmp ebp, 0xffffffff
cmove ebp, ecx
add edi, 4
mov dword [esp + 0x14], edi
mov esi, dword [edi - 4]
test bl, 0x20
je 0x4c8423
test esi, esi
cmove esi, dword [0x5179a8]
xor ecx, ecx
mov eax, esi
mov edi, ecx
mov dword [esp + 0x1c], eax
test ebp, ebp
jle 0x4c844d
mov al, byte [eax]
test al, al
je 0x4c844d
lea ecx, [esp + 0x48]
movzx eax, al
push ecx
push eax
call fcn.004ca9a9
pop ecx
test eax, eax
mov eax, dword [esp + 0x20]
pop ecx
je 0x4c8020
inc eax
inc eax
inc edi
mov dword [esp + 0x1c], eax
cmp edi, ebp
jl 0x4c7ffd
jmp 0x4c844d
push 0x58
pop ecx
sub eax, ecx
je 0x4c82dd
dec eax
dec eax
je 0x4c80bb
sub eax, 7
je 0x4c7f63
dec eax
dec eax
jne 0x4c844d
movzx eax, word [ebp]
add ebp, 4
mov dword [esp + 0x28], 1
mov dword [esp + 0x14], ebp
mov dword [esp + 0x64], eax
test bl, 0x20
je 0x4c80a4
mov byte [esp + 0x40], al
xor eax, eax
mov byte [esp + 0x41], al
lea eax, [esp + 0x48]
push eax
mov eax, dword [esp + 0x4c]
push dword [eax + 0x74]
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x9c]
push eax
call fcn.004ce9a9
add esp, 0x10
test eax, eax
jns 0x4c80ac
mov dword [esp + 0x44], 1
jmp 0x4c80ac
mov word [esp + 0x90], ax
xor edi, edi
lea esi, [esp + 0x90]
inc edi
jmp 0x4c844d
mov eax, dword [ebp]
add ebp, 4
mov dword [esp + 0x14], ebp
test eax, eax
je 0x4c80fb
mov esi, dword [eax + 4]
test esi, esi
je 0x4c80fb
test ebx, 0x800
je 0x4c80ed
movsx eax, word [eax]
cdq
sub eax, edx
mov dword [esp + 0x28], 1
mov edi, eax
jmp 0x4c844b
movsx edi, word [eax]
xor ecx, ecx
mov dword [esp + 0x28], ecx
jmp 0x4c844d
mov esi, dword [0x5179a8]
mov edi, esi
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x4c8106
sub edi, ecx
jmp 0x4c844d
cmp eax, 0x70
jg 0x4c82e1
je 0x4c82d5
cmp eax, 0x65
jl 0x4c844d
push 0x67
pop ecx
cmp eax, ecx
jle 0x4c7f63
push 0x69
pop ecx
cmp eax, ecx
je 0x4c819c
cmp eax, 0x6e
je 0x4c8166
push 0x6f
pop ecx
cmp eax, ecx
jne 0x4c844d
mov esi, 0x200
push 8
pop ecx
mov dword [esp + 0x1c], ecx
test bl, bl
jns 0x4c81af
or ebx, esi
mov dword [esp + 0x10], ebx
jmp 0x4c81af
add ebp, 4
mov dword [esp + 0x14], ebp
mov ebp, dword [ebp - 4]
call fcn.004cd27d
test eax, eax
je 0x4c8614
mov eax, dword [esp + 0x20]
test bl, 0x20
je 0x4c818c
mov word [ebp], ax
jmp 0x4c818f
mov dword [ebp], eax
mov dword [esp + 0x44], 1
jmp 0x4c85bf
or ebx, 0x40
mov dword [esp + 0x10], ebx
push 0xa
pop ecx
mov esi, 0x200
mov dword [esp + 0x1c], ecx
test ebx, 0x8000
jne 0x4c81c3
test ebx, 0x1000
je 0x4c8333
add ebp, 8
mov dword [esp + 0x14], ebp
mov edi, dword [esp + 0x14]
mov ebp, dword [ebp - 8]
mov edi, dword [edi - 4]
jmp 0x4c835d
jne 0x4c81ed
push 0x67
pop eax
cmp dx, ax
jne 0x4c8224
mov dword [esp + 0x18], 1
jmp 0x4c8224
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0x18], eax
cmp eax, 0xa3
jle 0x4c8224
lea edi, [eax + 0x15d]
push edi
call fcn.004c296d
mov edx, dword [esp + 0x20]
mov dword [esp + 0x5c], eax
pop ecx
test eax, eax
je 0x4c821c
mov esi, eax
mov ebp, edi
jmp 0x4c8224
mov dword [esp + 0x18], 0xa3
mov edi, dword [esp + 0x14]
add edi, 8
mov dword [esp + 0x14], edi
mov eax, dword [edi - 8]
mov dword [esp + 0x88], eax
mov eax, dword [edi - 4]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x60]
movsx eax, dl
push dword [esp + 0x20]
push eax
push ebp
mov ebp, dword [0x5177a4]
lea eax, [esp + 0x9c]
push esi
push eax
push dword [0x518558]
call ebp
call eax
mov edi, ebx
add esp, 0x1c
and edi, 0x80
je 0x4c8294
cmp dword [esp + 0x18], 0
jne 0x4c8294
lea eax, [esp + 0x48]
push eax
push esi
push dword [0x518564]
call ebp
call eax
pop ecx
pop ecx
push 0x67
pop eax
cmp word [esp + 0x1c], ax
jne 0x4c82b4
test edi, edi
jne 0x4c82b4
lea eax, [esp + 0x48]
push eax
push esi
push dword [0x518560]
call ebp
call eax
pop ecx
pop ecx
cmp byte [esi], 0x2d
jne 0x4c82c4
or ebx, 0x100
inc esi
mov dword [esp + 0x10], ebx
mov edi, esi
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x4c82c9
jmp 0x4c810d
mov dword [esp + 0x18], 8
push 7
jmp 0x4c82fd
sub eax, 0x73
je 0x4c7fbc
dec eax
dec eax
je 0x4c81a3
sub eax, 3
jne 0x4c844d
push 0x27
mov esi, 0x200
pop eax
mov dword [esp + 0x60], eax
push 0x10
pop ecx
mov dword [esp + 0x1c], ecx
test bl, bl
jns 0x4c81af
push 0x30
pop edx
add eax, 0x51
mov word [esp + 0x38], dx
mov word [esp + 0x3a], ax
mov dword [esp + 0x24], 2
jmp 0x4c81af
add ebp, 4
mov dword [esp + 0x14], ebp
test bl, 0x20
je 0x4c8350
test bl, 0x40
je 0x4c834a
movsx eax, word [ebp - 4]
jmp 0x4c8358
movzx eax, word [ebp - 4]
jmp 0x4c8358
test bl, 0x40
je 0x4c8361
mov eax, dword [ebp - 4]
cdq
mov ebp, eax
mov edi, edx
xor eax, eax
jmp 0x4c8368
mov ebp, dword [ebp - 4]
xor eax, eax
mov edi, eax
test bl, 0x40
je 0x4c8387
cmp edi, eax
jg 0x4c8387
jl 0x4c8377
cmp ebp, eax
jae 0x4c8387
neg ebp
adc edi, eax
neg edi
or ebx, 0x100
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x18]
test ebx, 0x9000
cmove edi, eax
test edx, edx
jns 0x4c839d
xor edx, edx
inc edx
jmp 0x4c83a9
and ebx, 0xfffffff7
cmp edx, esi
mov dword [esp + 0x10], ebx
cmovg edx, esi
mov eax, ebp
or eax, edi
jne 0x4c83b3
mov dword [esp + 0x24], eax
lea esi, [esp + 0x28f]
mov eax, edx
dec edx
mov dword [esp + 0x18], edx
test eax, eax
jg 0x4c83cb
mov eax, ebp
or eax, edi
je 0x4c83fb
mov eax, ecx
cdq
push edx
push eax
push edi
push ebp
call fcn.004c0eb0
add ecx, 0x30
mov dword [esp + 0x84], ebx
mov ebp, eax
mov edi, edx
cmp ecx, 0x39
jle 0x4c83ee
add ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x18]
mov byte [esi], cl
dec esi
mov ecx, dword [esp + 0x1c]
jmp 0x4c83ba
mov ebx, dword [esp + 0x10]
lea edi, [esp + 0x28f]
sub edi, esi
inc esi
test ebx, 0x200
je 0x4c844d
test edi, edi
je 0x4c841a
cmp byte [esi], 0x30
je 0x4c844d
dec esi
inc edi
push 0x30
pop eax
mov byte [esi], al
jmp 0x4c844d
test esi, esi
mov dword [esp + 0x28], 1
cmove esi, dword [str._null_]
mov edi, esi
test ebp, ebp
je 0x4c8449
xor eax, eax
dec ebp
cmp word [edi], ax
je 0x4c8449
add edi, 2
test ebp, ebp
jne 0x4c843c
sub edi, esi
sar edi, 1
cmp dword [esp + 0x44], 0
jne 0x4c85bf
test bl, 0x40
je 0x4c8479
test ebx, 0x100
je 0x4c8552
push 0x2d
pop eax
mov word [esp + 0x38], ax
mov dword [esp + 0x24], 1
push 0x20
pop ecx
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
sub ebp, edi
sub ebp, eax
test bl, 0xc
jne 0x4c84a4
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x30]
push ebp
push ecx
call fcn.004c8694
mov eax, dword [esp + 0x34]
add esp, 0x10
push dword [esp + 0x68]
lea ecx, [esp + 0x24]
push ecx
push dword [esp + 0x34]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.004c86c0
add esp, 0x14
test bl, 8
je 0x4c84df
test bl, 4
jne 0x4c84df
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x30]
push ebp
push 0x30
pop eax
push eax
call fcn.004c8694
add esp, 0x10
cmp dword [esp + 0x28], 0
jne 0x4c8585
test edi, edi
jle 0x4c8585
mov ecx, esi
mov dword [esp + 0x1c], esi
mov eax, edi
dec eax
mov dword [esp + 0x80], eax
lea eax, [esp + 0x48]
push eax
mov eax, dword [esp + 0x4c]
push dword [eax + 0x74]
lea eax, [esp + 0x6c]
push ecx
push eax
call fcn.004ce9a9
add esp, 0x10
mov dword [esp + 0x74], eax
test eax, eax
jle 0x4c857c
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x30]
push dword [esp + 0x6c]
call fcn.004c865e
mov ecx, dword [esp + 0x28]
add esp, 0xc
add ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x1c], ecx
test eax, eax
jg 0x4c84fa
jmp 0x4c859c
test bl, 1
je 0x4c855e
push 0x2b
jmp 0x4c846b
test bl, 2
je 0x4c8479
push 0x20
pop ecx
mov word [esp + 0x38], cx
mov dword [esp + 0x24], 1
jmp 0x4c847c
or eax, 0xffffffff
mov dword [esp + 0x20], eax
jmp 0x4c85a0
push dword [esp + 0x68]
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x34]
push edi
push esi
call fcn.004c86c0
add esp, 0x14
mov eax, dword [esp + 0x20]
test eax, eax
js 0x4c85bf
test bl, 4
je 0x4c85bf
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x30]
push ebp
push 0x20
pop eax
push eax
call fcn.004c8694
add esp, 0x10
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4c85d4
push eax
call fcn.004bb566
xor eax, eax
pop ecx
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x30]
movzx edx, word [ecx]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], edx
test dx, dx
jne 0x4c7ce6
cmp byte [esp + 0x54], 0
je 0x4c85fb
mov ecx, dword [esp + 0x50]
and dword [ecx + 0x70], 0xfffffffd
mov ecx, dword [esp + 0x490]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004b94b6
add esp, 0x484
ret
call fcn.004c2a7f
mov dword [eax], 0x16
call fcn.004c40ce
cmp byte [esp + 0x54], 0
je 0x4c7c90
mov ecx, dword [esp + 0x50]
and dword [ecx + 0x70], 0xfffffffd
jmp 0x4c7c90