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

Disassembly:
sub esp, 0x484
mov eax, dword [0x518450]
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.004bae23
call fcn.004c302f
mov dword [esp + 0x68], eax
test edi, edi
jne 0x4c8247
call fcn.004c302f
mov dword [eax], 0x16
call fcn.004c467e
cmp byte [esp + 0x54], bl
je 0x4c823f
mov eax, dword [esp + 0x50]
and dword [eax + 0x70], 0xfffffffd
or eax, 0xffffffff
jmp 0x4c8baa
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x4c8221
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 0x4c8b9b
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 0x4c8b9b
push 0x58
lea eax, [edx - 0x20]
pop ebp
cmp ax, bp
ja 0x4c82be
movzx eax, dx
movsx eax, byte [eax + 0x4ed958]
and eax, 0xf
jmp 0x4c82c0
xor eax, eax
mov ebp, dword [esp + 0x3c]
movsx ebp, byte [ebp + eax*8 + 0x4ed978]
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.0x4c82e6
jmp dword [eax*4 + 0x4c8bed]
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.0x4c82e6
movzx eax, dx
push 0x20
pop edx
sub eax, edx
je 0x4c834b
sub eax, 3
je 0x4c8343
sub eax, 8
je 0x4c833e
dec eax
dec eax
je 0x4c8339
sub eax, 3
jne case.default.0x4c82e6
or ebx, 8
jmp 0x4c834e
or ebx, 4
jmp 0x4c834e
or ebx, 1
jmp 0x4c834e
or ebx, 0x80
jmp 0x4c834e
or ebx, 2
mov dword [esp + 0x10], ebx
jmp case.default.0x4c82e6
push 0x2a
pop eax
cmp dx, ax
jne 0x4c8387
mov eax, dword [ebp]
add ebp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 0x34], eax
test eax, eax
jns case.default.0x4c82e6
or ebx, 4
neg eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x34], eax
jmp case.default.0x4c82e6
imul ecx, dword [esp + 0x34], 0xa
movzx eax, dx
add ecx, 0xffffffd0
add eax, ecx
mov dword [esp + 0x34], eax
jmp 0x4c8b83
xor eax, eax
mov dword [esp + 0x18], eax
jmp case.default.0x4c82e6
push 0x2a
pop eax
cmp dx, ax
jne 0x4c83d0
mov eax, dword [ebp]
add ebp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], eax
test eax, eax
jns case.default.0x4c82e6
or dword [esp + 0x18], 0xffffffff
jmp case.default.0x4c82e6
imul ecx, dword [esp + 0x18], 0xa
movzx eax, dx
add ecx, 0xffffffd0
add eax, ecx
mov dword [esp + 0x18], eax
jmp 0x4c8b83
movzx eax, dx
cmp eax, 0x49
je 0x4c8433
cmp eax, 0x68
je 0x4c8429
push 0x6c
pop edx
cmp eax, edx
je 0x4c840e
cmp eax, 0x77
jne case.default.0x4c82e6
or ebx, 0x800
jmp 0x4c834e
cmp word [ecx], dx
jne 0x4c8421
add ecx, 2
or ebx, 0x1000
jmp 0x4c834e
or ebx, 0x10
jmp 0x4c834e
push 0x20
pop eax
or ebx, eax
jmp 0x4c834e
movzx eax, word [ecx]
cmp eax, 0x36
jne 0x4c8450
cmp word [ecx + 2], 0x34
jne 0x4c8450
add ecx, 4
or ebx, 0x8000
jmp 0x4c834e
cmp eax, 0x33
jne 0x4c846a
cmp word [ecx + 2], 0x32
jne 0x4c846a
add ecx, 4
and ebx, 0xffff7fff
jmp 0x4c834e
cmp ax, word [esp + 0x78]
je case.default.0x4c82e6
cmp ax, word [esp + 0x6c]
je case.default.0x4c82e6
cmp ax, word [esp + 0x7c]
je case.default.0x4c82e6
cmp eax, 0x75
je case.default.0x4c82e6
cmp eax, 0x78
je case.default.0x4c82e6
cmp ax, word [esp + 0x70]
je case.default.0x4c82e6
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.004c8c0d
add esp, 0xc
jmp 0x4c8b83
push 0x64
movzx eax, dx
pop ecx
cmp eax, ecx
jg 0x4c86c3
je 0x4c874b
cmp eax, 0x53
jg 0x4c85de
je 0x4c855a
sub eax, 0x41
je 0x4c8501
dec eax
dec eax
je 0x4c8540
dec eax
dec eax
je 0x4c8501
dec eax
dec eax
jne 0x4c89fc
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 0x4c8788
mov dword [esp + 0x18], 6
jmp 0x4c87d3
test ebx, 0x830
jne 0x4c85fe
push 0x20
pop eax
or ebx, eax
mov dword [esp + 0x10], ebx
jmp 0x4c85fe
test ebx, 0x830
jne 0x4c856b
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 0x4c89d2
test esi, esi
cmove esi, dword [0x518968]
xor ecx, ecx
mov eax, esi
mov edi, ecx
mov dword [esp + 0x1c], eax
test ebp, ebp
jle 0x4c89fc
mov al, byte [eax]
test al, al
je 0x4c89fc
lea ecx, [esp + 0x48]
movzx eax, al
push ecx
push eax
call fcn.004caf49
pop ecx
test eax, eax
mov eax, dword [esp + 0x20]
pop ecx
je 0x4c85cf
inc eax
inc eax
inc edi
mov dword [esp + 0x1c], eax
cmp edi, ebp
jl 0x4c85ac
jmp 0x4c89fc
push 0x58
pop ecx
sub eax, ecx
je 0x4c888c
dec eax
dec eax
je 0x4c866a
sub eax, 7
je 0x4c8512
dec eax
dec eax
jne 0x4c89fc
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 0x4c8653
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.004cef49
add esp, 0x10
test eax, eax
jns 0x4c865b
mov dword [esp + 0x44], 1
jmp 0x4c865b
mov word [esp + 0x90], ax
xor edi, edi
lea esi, [esp + 0x90]
inc edi
jmp 0x4c89fc
mov eax, dword [ebp]
add ebp, 4
mov dword [esp + 0x14], ebp
test eax, eax
je 0x4c86aa
mov esi, dword [eax + 4]
test esi, esi
je 0x4c86aa
test ebx, 0x800
je 0x4c869c
movsx eax, word [eax]
cdq
sub eax, edx
mov dword [esp + 0x28], 1
mov edi, eax
jmp 0x4c89fa
movsx edi, word [eax]
xor ecx, ecx
mov dword [esp + 0x28], ecx
jmp 0x4c89fc
mov esi, dword [0x518968]
mov edi, esi
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x4c86b5
sub edi, ecx
jmp 0x4c89fc
cmp eax, 0x70
jg 0x4c8890
je 0x4c8884
cmp eax, 0x65
jl 0x4c89fc
push 0x67
pop ecx
cmp eax, ecx
jle 0x4c8512
push 0x69
pop ecx
cmp eax, ecx
je 0x4c874b
cmp eax, 0x6e
je 0x4c8715
push 0x6f
pop ecx
cmp eax, ecx
jne 0x4c89fc
mov esi, 0x200
push 8
pop ecx
mov dword [esp + 0x1c], ecx
test bl, bl
jns 0x4c875e
or ebx, esi
mov dword [esp + 0x10], ebx
jmp 0x4c875e
add ebp, 4
mov dword [esp + 0x14], ebp
mov ebp, dword [ebp - 4]
call fcn.004cd81d
test eax, eax
je 0x4c8bc3
mov eax, dword [esp + 0x20]
test bl, 0x20
je 0x4c873b
mov word [ebp], ax
jmp 0x4c873e
mov dword [ebp], eax
mov dword [esp + 0x44], 1
jmp 0x4c8b6e
or ebx, 0x40
mov dword [esp + 0x10], ebx
push 0xa
pop ecx
mov esi, 0x200
mov dword [esp + 0x1c], ecx
test ebx, 0x8000
jne 0x4c8772
test ebx, 0x1000
je 0x4c88e2
add ebp, 8
mov dword [esp + 0x14], ebp
mov edi, dword [esp + 0x14]
mov ebp, dword [ebp - 8]
mov edi, dword [edi - 4]
jmp 0x4c890c
jne 0x4c879c
push 0x67
pop eax
cmp dx, ax
jne 0x4c87d3
mov dword [esp + 0x18], 1
jmp 0x4c87d3
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0x18], eax
cmp eax, 0xa3
jle 0x4c87d3
lea edi, [eax + 0x15d]
push edi
call fcn.004c2f1d
mov edx, dword [esp + 0x20]
mov dword [esp + 0x5c], eax
pop ecx
test eax, eax
je 0x4c87cb
mov esi, eax
mov ebp, edi
jmp 0x4c87d3
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 [0x518764]
lea eax, [esp + 0x9c]
push esi
push eax
push dword [0x519518]
call ebp
call eax
mov edi, ebx
add esp, 0x1c
and edi, 0x80
je 0x4c8843
cmp dword [esp + 0x18], 0
jne 0x4c8843
lea eax, [esp + 0x48]
push eax
push esi
push dword [0x519524]
call ebp
call eax
pop ecx
pop ecx
push 0x67
pop eax
cmp word [esp + 0x1c], ax
jne 0x4c8863
test edi, edi
jne 0x4c8863
lea eax, [esp + 0x48]
push eax
push esi
push dword [0x519520]
call ebp
call eax
pop ecx
pop ecx
cmp byte [esi], 0x2d
jne 0x4c8873
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 0x4c8878
jmp 0x4c86bc
mov dword [esp + 0x18], 8
push 7
jmp 0x4c88ac
sub eax, 0x73
je 0x4c856b
dec eax
dec eax
je 0x4c8752
sub eax, 3
jne 0x4c89fc
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 0x4c875e
push 0x30
pop edx
add eax, 0x51
mov word [esp + 0x38], dx
mov word [esp + 0x3a], ax
mov dword [esp + 0x24], 2
jmp 0x4c875e
add ebp, 4
mov dword [esp + 0x14], ebp
test bl, 0x20
je 0x4c88ff
test bl, 0x40
je 0x4c88f9
movsx eax, word [ebp - 4]
jmp 0x4c8907
movzx eax, word [ebp - 4]
jmp 0x4c8907
test bl, 0x40
je 0x4c8910
mov eax, dword [ebp - 4]
cdq
mov ebp, eax
mov edi, edx
xor eax, eax
jmp 0x4c8917
mov ebp, dword [ebp - 4]
xor eax, eax
mov edi, eax
test bl, 0x40
je 0x4c8936
cmp edi, eax
jg 0x4c8936
jl 0x4c8926
cmp ebp, eax
jae 0x4c8936
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 0x4c894c
xor edx, edx
inc edx
jmp 0x4c8958
and ebx, 0xfffffff7
cmp edx, esi
mov dword [esp + 0x10], ebx
cmovg edx, esi
mov eax, ebp
or eax, edi
jne 0x4c8962
mov dword [esp + 0x24], eax
lea esi, [esp + 0x28f]
mov eax, edx
dec edx
mov dword [esp + 0x18], edx
test eax, eax
jg 0x4c897a
mov eax, ebp
or eax, edi
je 0x4c89aa
mov eax, ecx
cdq
push edx
push eax
push edi
push ebp
call fcn.004c1460
add ecx, 0x30
mov dword [esp + 0x84], ebx
mov ebp, eax
mov edi, edx
cmp ecx, 0x39
jle 0x4c899d
add ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x18]
mov byte [esi], cl
dec esi
mov ecx, dword [esp + 0x1c]
jmp 0x4c8969
mov ebx, dword [esp + 0x10]
lea edi, [esp + 0x28f]
sub edi, esi
inc esi
test ebx, 0x200
je 0x4c89fc
test edi, edi
je 0x4c89c9
cmp byte [esi], 0x30
je 0x4c89fc
dec esi
inc edi
push 0x30
pop eax
mov byte [esi], al
jmp 0x4c89fc
test esi, esi
mov dword [esp + 0x28], 1
cmove esi, dword [str._null_]
mov edi, esi
test ebp, ebp
je 0x4c89f8
xor eax, eax
dec ebp
cmp word [edi], ax
je 0x4c89f8
add edi, 2
test ebp, ebp
jne 0x4c89eb
sub edi, esi
sar edi, 1
cmp dword [esp + 0x44], 0
jne 0x4c8b6e
test bl, 0x40
je 0x4c8a28
test ebx, 0x100
je 0x4c8b01
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 0x4c8a53
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x30]
push ebp
push ecx
call fcn.004c8c43
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.004c8c6f
add esp, 0x14
test bl, 8
je 0x4c8a8e
test bl, 4
jne 0x4c8a8e
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x30]
push ebp
push 0x30
pop eax
push eax
call fcn.004c8c43
add esp, 0x10
cmp dword [esp + 0x28], 0
jne 0x4c8b34
test edi, edi
jle 0x4c8b34
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.004cef49
add esp, 0x10
mov dword [esp + 0x74], eax
test eax, eax
jle 0x4c8b2b
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x30]
push dword [esp + 0x6c]
call fcn.004c8c0d
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 0x4c8aa9
jmp 0x4c8b4b
test bl, 1
je 0x4c8b0d
push 0x2b
jmp 0x4c8a1a
test bl, 2
je 0x4c8a28
push 0x20
pop ecx
mov word [esp + 0x38], cx
mov dword [esp + 0x24], 1
jmp 0x4c8a2b
or eax, 0xffffffff
mov dword [esp + 0x20], eax
jmp 0x4c8b4f
push dword [esp + 0x68]
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x34]
push edi
push esi
call fcn.004c8c6f
add esp, 0x14
mov eax, dword [esp + 0x20]
test eax, eax
js 0x4c8b6e
test bl, 4
je 0x4c8b6e
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x30]
push ebp
push 0x20
pop eax
push eax
call fcn.004c8c43
add esp, 0x10
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4c8b83
push eax
call fcn.004bbb16
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 0x4c8295
cmp byte [esp + 0x54], 0
je 0x4c8baa
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.004b9a6c
add esp, 0x484
ret
call fcn.004c302f
mov dword [eax], 0x16
call fcn.004c467e
cmp byte [esp + 0x54], 0
je 0x4c823f
mov ecx, dword [esp + 0x50]
and dword [ecx + 0x70], 0xfffffffd
jmp 0x4c823f