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

Disassembly:
sub esp, 0x27c
mov eax, dword [0x5107c0]
xor eax, esp
mov dword [esp + 0x278], eax
mov eax, dword [esp + 0x280]
lea ecx, [esp + 0x50]
push ebx
push ebp
push esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x290]
push edi
push dword [esp + 0x298]
mov edi, dword [esp + 0x2a0]
mov dword [esp + 0x14], eax
xor eax, eax
mov ebx, eax
mov dword [esp + 0x20], edi
mov ebp, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x1c], ebx
mov esi, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], eax
call fcn.004b3def
call fcn.004bc77f
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4c0a1a
test byte [eax + 0xc], 0x40
jne 0x4c00ef
push eax
call fcn.004b656b
pop ecx
mov ecx, eax
cmp ecx, 0xffffffff
je 0x4c00b3
cmp ecx, 0xfffffffe
je 0x4c00b3
mov edx, ecx
sar eax, 5
and edx, 0x1f
shl edx, 6
add edx, dword [eax*4 + 0x520f18]
jmp 0x4c00b8
mov edx, 0x511730
test byte [edx + 0x24], 0x7f
jne 0x4c0a1a
cmp ecx, 0xffffffff
je 0x4c00e0
cmp ecx, 0xfffffffe
je 0x4c00e0
mov eax, ecx
and ecx, 0x1f
sar eax, 5
shl ecx, 6
add ecx, dword [eax*4 + 0x520f18]
jmp 0x4c00e5
mov ecx, 0x511730
test byte [ecx + 0x24], 0x80
jne 0x4c0a1a
mov edx, dword [esp + 0x10]
test edx, edx
je 0x4c0a1a
mov dl, byte [edx]
xor eax, eax
mov dword [esp + 0x28], eax
mov ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], eax
mov byte [esp + 0x17], dl
mov byte [esp + 0x48], dl
test dl, dl
je 0x4c09f0
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
test ecx, ecx
js 0x4c09f0
lea eax, [edx - 0x20]
cmp al, 0x58
ja 0x4c0148
movsx eax, dl
movsx eax, byte [eax + 0x4e70b8]
and eax, 0xf
jmp 0x4c014a
xor eax, eax
mov edi, dword [esp + 0x40]
movsx edi, byte [edi + eax*8 + 0x4e70d8]
mov eax, edi
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x1c]
sar eax, 4
mov dword [esp + 0x40], eax
cmp eax, 7
ja case.default.0x4c0170
jmp dword [eax*4 + 0x4c0a30]
xor eax, eax
or ebp, 0xffffffff
mov ebx, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x3c], eax
jmp case.default.0x4c0170
movsx eax, dl
sub eax, 0x20
je 0x4c01e7
sub eax, 3
je 0x4c01df
sub eax, 8
je 0x4c01da
dec eax
dec eax
je 0x4c01ce
sub eax, 3
mov eax, dword [esp + 0x10]
jne 0x4c09de
or ebx, 8
mov dword [esp + 0x18], ebx
jmp 0x4c09de
or ebx, 4
mov dword [esp + 0x18], ebx
jmp case.default.0x4c0170
or ebx, 1
jmp 0x4c01d1
or ebx, 0x80
jmp 0x4c01d1
or ebx, 2
jmp 0x4c01d1
cmp dl, 0x2a
jne 0x4c0218
mov eax, dword [edi]
add edi, 4
mov dword [esp + 0x1c], edi
mov dword [esp + 0x38], eax
test eax, eax
jns case.default.0x4c0170
or ebx, 4
neg eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x38], eax
jmp case.default.0x4c0170
imul ecx, dword [esp + 0x38], 0xa
movsx eax, dl
add ecx, 0xffffffd0
add eax, ecx
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x20]
jmp case.default.0x4c0170
xor eax, eax
mov ebp, eax
mov dword [esp + 0x24], ebp
jmp case.default.0x4c0170
cmp dl, 0x2a
jne 0x4c0269
mov ebp, dword [edi]
add edi, 4
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], ebp
test ebp, ebp
jns 0x4c09de
or ebp, 0xffffffff
mov dword [esp + 0x24], ebp
jmp 0x4c09de
imul ecx, ebp, 0xa
movsx ebp, dl
add ecx, 0xffffffd0
add ebp, ecx
mov dword [esp + 0x24], ebp
jmp 0x4c0229
cmp dl, 0x49
je 0x4c02c2
cmp dl, 0x68
je 0x4c02ba
mov eax, dword [esp + 0x10]
cmp dl, 0x6c
je 0x4c02a1
cmp dl, 0x77
jne 0x4c09de
or ebx, 0x800
jmp 0x4c01c5
cmp byte [eax], 0x6c
jne 0x4c02b2
inc eax
or ebx, 0x1000
jmp 0x4c01c5
or ebx, 0x10
jmp 0x4c01c5
or ebx, 0x20
jmp 0x4c01d1
mov eax, dword [esp + 0x10]
mov al, byte [eax]
cmp al, 0x36
jne 0x4c02e6
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x34
jne 0x4c02e6
mov eax, edi
add eax, 2
or ebx, 0x8000
jmp 0x4c01c5
cmp al, 0x33
jne 0x4c0304
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x32
jne 0x4c0304
mov eax, edi
add eax, 2
and ebx, 0xffff7fff
jmp 0x4c01c5
cmp al, 0x64
je case.default.0x4c0170
cmp al, 0x69
je case.default.0x4c0170
cmp al, 0x6f
je case.default.0x4c0170
cmp al, 0x75
je case.default.0x4c0170
cmp al, 0x78
je case.default.0x4c0170
cmp al, 0x58
je case.default.0x4c0170
xor eax, eax
mov dword [esp + 0x40], eax
jmp 0x4c033e
xor eax, eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x60]
push eax
movzx eax, dl
push eax
call fcn.004c3016
pop ecx
pop ecx
test eax, eax
je 0x4c0382
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x38]
push dword [esp + 0x50]
call fcn.004c0a50
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov al, byte [ecx]
inc ecx
mov byte [esp + 0x48], al
mov dword [esp + 0x10], ecx
test al, al
je 0x4c0a1a
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x38]
push dword [esp + 0x50]
call fcn.004c0a50
add esp, 0xc
jmp 0x4c0229
movsx eax, dl
cmp eax, 0x64
jg 0x4c055f
je 0x4c05df
cmp eax, 0x53
jg 0x4c0489
je 0x4c0426
sub eax, 0x41
je 0x4c03ce
dec eax
dec eax
je 0x4c040b
dec eax
dec eax
je 0x4c03ce
dec eax
dec eax
jne 0x4c086b
add dl, 0x20
mov dword [esp + 0x50], 1
mov byte [esp + 0x17], dl
mov eax, dword [esp + 0x24]
lea esi, [esp + 0x80]
or ebx, 0x40
mov ecx, 0x200
mov dword [esp + 0x18], ebx
mov ebp, ecx
test eax, eax
jns 0x4c0614
mov dword [esp + 0x24], 6
jmp 0x4c0660
test ebx, 0x830
jne 0x4c04a7
or ebx, 0x800
mov dword [esp + 0x18], ebx
jmp 0x4c04a7
test ebx, 0x830
jne 0x4c0438
or ebx, 0x800
mov dword [esp + 0x18], ebx
mov esi, dword [edi]
cmp ebp, 0xffffffff
mov eax, ebp
mov ecx, 0x7fffffff
cmove eax, ecx
add edi, 4
mov dword [esp + 0x1c], edi
test ebx, 0x810
je 0x4c084d
test esi, esi
mov dword [esp + 0x3c], 1
cmove esi, dword [str._null_]
mov ecx, esi
test eax, eax
je 0x4c0480
xor edx, edx
dec eax
cmp word [ecx], dx
je 0x4c0480
add ecx, 2
test eax, eax
jne 0x4c0473
sub ecx, esi
sar ecx, 1
jmp 0x4c0867
sub eax, 0x58
je 0x4c070b
dec eax
dec eax
je 0x4c0502
sub eax, 7
je 0x4c03dd
dec eax
dec eax
jne 0x4c086b
add edi, 4
mov dword [esp + 0x1c], edi
test ebx, 0x810
je 0x4c04e4
movzx eax, word [edi - 4]
push eax
mov eax, 0x200
push eax
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.004c78cc
add esp, 0x10
test eax, eax
je 0x4c04f6
mov dword [esp + 0x44], 1
jmp 0x4c04f6
mov al, byte [edi - 4]
mov byte [esp + 0x80], al
mov dword [esp + 0x28], 1
lea esi, [esp + 0x80]
jmp 0x4c086b
mov eax, dword [edi]
add edi, 4
mov dword [esp + 0x1c], edi
test eax, eax
je 0x4c0546
mov esi, dword [eax + 4]
test esi, esi
je 0x4c0546
movsx eax, word [eax]
test ebx, 0x800
je 0x4c0537
cdq
sub eax, edx
mov dword [esp + 0x3c], 1
sar eax, 1
mov dword [esp + 0x28], eax
jmp 0x4c086b
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], ecx
jmp 0x4c086b
mov esi, dword [0x5114a0]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c0551
sub ecx, edx
jmp 0x4c0867
cmp eax, 0x70
jg 0x4c070f
je 0x4c0703
cmp eax, 0x65
jl 0x4c086b
cmp eax, 0x67
jle 0x4c03dd
cmp eax, 0x69
je 0x4c05df
cmp eax, 0x6e
je 0x4c05ab
cmp eax, 0x6f
jne 0x4c086b
push 8
pop ecx
mov dword [esp + 0x28], ecx
test bl, bl
jns 0x4c05ed
mov eax, 0x200
or ebx, eax
mov dword [esp + 0x18], ebx
jmp 0x4c05ed
add edi, 4
mov dword [esp + 0x1c], edi
mov edi, dword [edi - 4]
call fcn.004c74ee
test eax, eax
je 0x4c0a1a
mov eax, dword [esp + 0x20]
test bl, 0x20
je 0x4c05d0
mov word [edi], ax
jmp 0x4c05d2
mov dword [edi], eax
mov dword [esp + 0x44], 1
jmp 0x4c09b4
or ebx, 0x40
mov dword [esp + 0x18], ebx
push 0xa
pop ecx
mov dword [esp + 0x28], ecx
test ebx, 0x8000
jne 0x4c0601
test ebx, 0x1000
je 0x4c0757
mov ebp, dword [edi]
add edi, 8
mov dword [esp + 0x1c], edi
xor esi, esi
mov edi, dword [edi - 4]
jmp 0x4c078a
jne 0x4c0625
cmp dl, 0x67
jne 0x4c0660
mov dword [esp + 0x24], 1
jmp 0x4c0660
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0x24], eax
cmp eax, 0xa3
jle 0x4c0660
lea edi, [eax + 0x15d]
push edi
call fcn.004bc66d
mov dl, byte [esp + 0x1b]
mov dword [esp + 0x50], eax
pop ecx
test eax, eax
je 0x4c0654
mov esi, eax
mov ebp, edi
jmp 0x4c065c
mov dword [esp + 0x24], 0xa3
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
add edi, 8
mov dword [esp + 0x78], eax
mov dword [esp + 0x1c], edi
mov eax, dword [edi - 4]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x60]
push eax
push dword [esp + 0x54]
movsx eax, dl
push dword [esp + 0x2c]
push eax
push ebp
mov ebp, dword [0x510ad4]
lea eax, [esp + 0x8c]
push esi
push eax
push dword [0x511788]
call ebp
call eax
mov edi, ebx
add esp, 0x1c
and edi, 0x80
je 0x4c06c5
cmp dword [esp + 0x24], 0
jne 0x4c06c5
lea eax, [esp + 0x60]
push eax
push esi
push dword [0x511794]
call ebp
call eax
pop ecx
pop ecx
cmp byte [esp + 0x17], 0x67
jne 0x4c06e2
test edi, edi
jne 0x4c06e2
lea eax, [esp + 0x60]
push eax
push esi
push dword [0x511790]
call ebp
call eax
pop ecx
pop ecx
cmp byte [esi], 0x2d
jne 0x4c06f2
or ebx, 0x100
inc esi
mov dword [esp + 0x18], ebx
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c06f7
jmp 0x4c0558
mov dword [esp + 0x24], 8
push 7
jmp 0x4c072b
sub eax, 0x73
je 0x4c0438
dec eax
dec eax
je 0x4c05e6
sub eax, 3
jne 0x4c086b
push 0x27
pop eax
mov dword [esp + 0x58], eax
push 0x10
pop ecx
mov dword [esp + 0x28], ecx
test bl, bl
jns 0x4c05ed
add al, 0x51
mov byte [esp + 0x2c], 0x30
mov byte [esp + 0x2d], al
mov dword [esp + 0x30], 2
jmp 0x4c05ed
add edi, 4
xor esi, esi
mov dword [esp + 0x1c], edi
test bl, 0x20
je 0x4c0776
test bl, 0x40
je 0x4c0770
movsx eax, word [edi - 4]
jmp 0x4c077e
movzx eax, word [edi - 4]
jmp 0x4c077e
test bl, 0x40
je 0x4c0785
mov eax, dword [edi - 4]
cdq
mov ebp, eax
mov edi, edx
jmp 0x4c078a
mov ebp, dword [edi - 4]
mov edi, esi
test bl, 0x40
je 0x4c07a9
cmp edi, esi
jg 0x4c07a9
jl 0x4c0799
cmp ebp, esi
jae 0x4c07a9
neg ebp
adc edi, esi
neg edi
or ebx, 0x100
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x24]
test ebx, 0x9000
cmove edi, esi
test edx, edx
jns 0x4c07bf
xor edx, edx
inc edx
jmp 0x4c07d0
mov eax, 0x200
and ebx, 0xfffffff7
cmp edx, eax
mov dword [esp + 0x18], ebx
cmovg edx, eax
mov eax, ebp
or eax, edi
jne 0x4c07da
mov dword [esp + 0x30], esi
lea esi, [esp + 0x27f]
mov eax, edx
dec edx
mov dword [esp + 0x24], edx
test eax, eax
jg 0x4c07f2
mov eax, ebp
or eax, edi
je 0x4c081f
mov eax, ecx
cdq
push edx
push eax
push edi
push ebp
call fcn.004bab00
add ecx, 0x30
mov dword [esp + 0x74], ebx
mov ebp, eax
mov edi, edx
cmp ecx, 0x39
jle 0x4c0812
add ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x24]
mov byte [esi], cl
dec esi
mov ecx, dword [esp + 0x28]
jmp 0x4c07e1
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x27f]
sub eax, esi
mov ecx, 0x200
inc esi
mov dword [esp + 0x28], eax
test ecx, ebx
je 0x4c086b
test eax, eax
je 0x4c0843
cmp byte [esi], 0x30
je 0x4c086b
dec esi
inc dword [esp + 0x28]
mov byte [esi], 0x30
jmp 0x4c086b
test esi, esi
cmove esi, dword [0x5114a0]
mov ecx, esi
jmp 0x4c0861
dec eax
cmp byte [ecx], 0
je 0x4c0865
inc ecx
test eax, eax
jne 0x4c085a
sub ecx, esi
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x44], 0
jne 0x4c09b4
test bl, 0x40
je 0x4c08a8
test ebx, 0x100
je 0x4c088a
mov byte [esp + 0x2c], 0x2d
jmp 0x4c08a0
test bl, 1
je 0x4c0896
mov byte [esp + 0x2c], 0x2b
jmp 0x4c08a0
test bl, 2
je 0x4c08a8
mov byte [esp + 0x2c], 0x20
mov dword [esp + 0x30], 1
mov edi, dword [esp + 0x38]
sub edi, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
sub edi, eax
mov ebp, dword [esp + 0x34]
test bl, 0xc
jne 0x4c08d4
lea eax, [esp + 0x20]
push eax
push ebp
push edi
push 0x20
call fcn.004c0a98
mov eax, dword [esp + 0x40]
add esp, 0x10
push dword [esp + 0x54]
lea ecx, [esp + 0x24]
push ecx
push ebp
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.004c0ac4
add esp, 0x14
test bl, 8
je 0x4c0907
test bl, 4
jne 0x4c0907
lea eax, [esp + 0x20]
push eax
push ebp
push edi
push 0x30
call fcn.004c0a98
add esp, 0x10
cmp dword [esp + 0x3c], 0
mov ebp, dword [esp + 0x28]
je 0x4c097c
test ebp, ebp
jle 0x4c097c
mov ecx, esi
movzx eax, word [ecx]
dec ebp
push eax
push 6
lea eax, [esp + 0x288]
add ecx, 2
push eax
lea eax, [esp + 0x68]
mov dword [esp + 0x7c], ecx
push eax
call fcn.004c78cc
add esp, 0x10
test eax, eax
jne 0x4c0973
cmp dword [esp + 0x5c], eax
je 0x4c0973
push dword [esp + 0x54]
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x3c]
lea eax, [esp + 0x28c]
push dword [esp + 0x68]
push eax
call fcn.004c0ac4
mov ecx, dword [esp + 0x84]
add esp, 0x14
test ebp, ebp
jne 0x4c0918
jmp 0x4c0993
or ecx, 0xffffffff
mov dword [esp + 0x20], ecx
jmp 0x4c0997
push dword [esp + 0x54]
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x3c]
push ebp
push esi
call fcn.004c0ac4
add esp, 0x14
mov ecx, dword [esp + 0x20]
test ecx, ecx
js 0x4c09b8
test bl, 4
je 0x4c09b8
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x38]
push edi
push 0x20
call fcn.004c0a98
add esp, 0x10
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4c09d6
push eax
call fcn.004b592c
mov ebp, dword [esp + 0x28]
xor eax, eax
pop ecx
mov dword [esp + 0x4c], eax
jmp 0x4c0229
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov dl, byte [eax]
mov byte [esp + 0x17], dl
mov byte [esp + 0x48], dl
test dl, dl
jne 0x4c0125
mov eax, ecx
cmp byte [esp + 0x6c], 0
pop edi
pop esi
pop ebp
pop ebx
je 0x4c0a05
mov ecx, dword [esp + 0x58]
and dword [ecx + 0x70], 0xfffffffd
mov ecx, dword [esp + 0x278]
xor ecx, esp
call fcn.004b35e5
add esp, 0x27c
ret
call fcn.004bc77f
mov dword [eax], 0x16
call fcn.004bdd46
or eax, 0xffffffff
jmp 0x4c09f2