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

Disassembly:
sub esp, 0x27c
mov eax, dword [0x517490]
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.004ba873
call fcn.004c2a7f
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4c5500
test byte [eax + 0xc], 0x40
jne 0x4c4bd5
push eax
call fcn.004beef4
pop ecx
mov ecx, eax
cmp ecx, 0xffffffff
je 0x4c4b99
cmp ecx, 0xfffffffe
je 0x4c4b99
mov edx, ecx
sar eax, 5
and edx, 0x1f
shl edx, 6
add edx, dword [eax*4 + 0x5297b8]
jmp 0x4c4b9e
mov edx, 0x518500
test byte [edx + 0x24], 0x7f
jne 0x4c5500
cmp ecx, 0xffffffff
je 0x4c4bc6
cmp ecx, 0xfffffffe
je 0x4c4bc6
mov eax, ecx
and ecx, 0x1f
sar eax, 5
shl ecx, 6
add ecx, dword [eax*4 + 0x5297b8]
jmp 0x4c4bcb
mov ecx, 0x518500
test byte [ecx + 0x24], 0x80
jne 0x4c5500
mov edx, dword [esp + 0x10]
test edx, edx
je 0x4c5500
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 0x4c54d6
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
test ecx, ecx
js 0x4c54d6
lea eax, [edx - 0x20]
cmp al, 0x58
ja 0x4c4c2e
movsx eax, dl
movsx eax, byte [eax + 0x4ec938]
and eax, 0xf
jmp 0x4c4c30
xor eax, eax
mov edi, dword [esp + 0x40]
movsx edi, byte [edi + eax*8 + 0x4ec958]
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.0x4c4c56
jmp dword [eax*4 + 0x4c5516]
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.0x4c4c56
movsx eax, dl
sub eax, 0x20
je 0x4c4ccd
sub eax, 3
je 0x4c4cc5
sub eax, 8
je 0x4c4cc0
dec eax
dec eax
je 0x4c4cb4
sub eax, 3
mov eax, dword [esp + 0x10]
jne 0x4c54c4
or ebx, 8
mov dword [esp + 0x18], ebx
jmp 0x4c54c4
or ebx, 4
mov dword [esp + 0x18], ebx
jmp case.default.0x4c4c56
or ebx, 1
jmp 0x4c4cb7
or ebx, 0x80
jmp 0x4c4cb7
or ebx, 2
jmp 0x4c4cb7
cmp dl, 0x2a
jne 0x4c4cfe
mov eax, dword [edi]
add edi, 4
mov dword [esp + 0x1c], edi
mov dword [esp + 0x38], eax
test eax, eax
jns case.default.0x4c4c56
or ebx, 4
neg eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x38], eax
jmp case.default.0x4c4c56
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.0x4c4c56
xor eax, eax
mov ebp, eax
mov dword [esp + 0x24], ebp
jmp case.default.0x4c4c56
cmp dl, 0x2a
jne 0x4c4d4f
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 0x4c54c4
or ebp, 0xffffffff
mov dword [esp + 0x24], ebp
jmp 0x4c54c4
imul ecx, ebp, 0xa
movsx ebp, dl
add ecx, 0xffffffd0
add ebp, ecx
mov dword [esp + 0x24], ebp
jmp 0x4c4d0f
cmp dl, 0x49
je 0x4c4da8
cmp dl, 0x68
je 0x4c4da0
mov eax, dword [esp + 0x10]
cmp dl, 0x6c
je 0x4c4d87
cmp dl, 0x77
jne 0x4c54c4
or ebx, 0x800
jmp 0x4c4cab
cmp byte [eax], 0x6c
jne 0x4c4d98
inc eax
or ebx, 0x1000
jmp 0x4c4cab
or ebx, 0x10
jmp 0x4c4cab
or ebx, 0x20
jmp 0x4c4cb7
mov eax, dword [esp + 0x10]
mov al, byte [eax]
cmp al, 0x36
jne 0x4c4dcc
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x34
jne 0x4c4dcc
mov eax, edi
add eax, 2
or ebx, 0x8000
jmp 0x4c4cab
cmp al, 0x33
jne 0x4c4dea
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x32
jne 0x4c4dea
mov eax, edi
add eax, 2
and ebx, 0xffff7fff
jmp 0x4c4cab
cmp al, 0x64
je case.default.0x4c4c56
cmp al, 0x69
je case.default.0x4c4c56
cmp al, 0x6f
je case.default.0x4c4c56
cmp al, 0x75
je case.default.0x4c4c56
cmp al, 0x78
je case.default.0x4c4c56
cmp al, 0x58
je case.default.0x4c4c56
xor eax, eax
mov dword [esp + 0x40], eax
jmp 0x4c4e24
xor eax, eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x60]
push eax
movzx eax, dl
push eax
call fcn.004ca9a9
pop ecx
pop ecx
test eax, eax
je 0x4c4e68
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x38]
push dword [esp + 0x50]
call fcn.004c5536
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 0x4c5500
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x38]
push dword [esp + 0x50]
call fcn.004c5536
add esp, 0xc
jmp 0x4c4d0f
movsx eax, dl
cmp eax, 0x64
jg 0x4c5045
je 0x4c50c5
cmp eax, 0x53
jg 0x4c4f6f
je 0x4c4f0c
sub eax, 0x41
je 0x4c4eb4
dec eax
dec eax
je 0x4c4ef1
dec eax
dec eax
je 0x4c4eb4
dec eax
dec eax
jne 0x4c5351
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 0x4c50fa
mov dword [esp + 0x24], 6
jmp 0x4c5146
test ebx, 0x830
jne 0x4c4f8d
or ebx, 0x800
mov dword [esp + 0x18], ebx
jmp 0x4c4f8d
test ebx, 0x830
jne 0x4c4f1e
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 0x4c5333
test esi, esi
mov dword [esp + 0x3c], 1
cmove esi, dword [str._null_]
mov ecx, esi
test eax, eax
je 0x4c4f66
xor edx, edx
dec eax
cmp word [ecx], dx
je 0x4c4f66
add ecx, 2
test eax, eax
jne 0x4c4f59
sub ecx, esi
sar ecx, 1
jmp 0x4c534d
sub eax, 0x58
je 0x4c51f1
dec eax
dec eax
je 0x4c4fe8
sub eax, 7
je 0x4c4ec3
dec eax
dec eax
jne 0x4c5351
add edi, 4
mov dword [esp + 0x1c], edi
test ebx, 0x810
je 0x4c4fca
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.004cd3c1
add esp, 0x10
test eax, eax
je 0x4c4fdc
mov dword [esp + 0x44], 1
jmp 0x4c4fdc
mov al, byte [edi - 4]
mov byte [esp + 0x80], al
mov dword [esp + 0x28], 1
lea esi, [esp + 0x80]
jmp 0x4c5351
mov eax, dword [edi]
add edi, 4
mov dword [esp + 0x1c], edi
test eax, eax
je 0x4c502c
mov esi, dword [eax + 4]
test esi, esi
je 0x4c502c
movsx eax, word [eax]
test ebx, 0x800
je 0x4c501d
cdq
sub eax, edx
mov dword [esp + 0x3c], 1
sar eax, 1
mov dword [esp + 0x28], eax
jmp 0x4c5351
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], ecx
jmp 0x4c5351
mov esi, dword [0x5179a8]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c5037
sub ecx, edx
jmp 0x4c534d
cmp eax, 0x70
jg 0x4c51f5
je 0x4c51e9
cmp eax, 0x65
jl 0x4c5351
cmp eax, 0x67
jle 0x4c4ec3
cmp eax, 0x69
je 0x4c50c5
cmp eax, 0x6e
je 0x4c5091
cmp eax, 0x6f
jne 0x4c5351
push 8
pop ecx
mov dword [esp + 0x28], ecx
test bl, bl
jns 0x4c50d3
mov eax, 0x200
or ebx, eax
mov dword [esp + 0x18], ebx
jmp 0x4c50d3
add edi, 4
mov dword [esp + 0x1c], edi
mov edi, dword [edi - 4]
call fcn.004cd27d
test eax, eax
je 0x4c5500
mov eax, dword [esp + 0x20]
test bl, 0x20
je 0x4c50b6
mov word [edi], ax
jmp 0x4c50b8
mov dword [edi], eax
mov dword [esp + 0x44], 1
jmp 0x4c549a
or ebx, 0x40
mov dword [esp + 0x18], ebx
push 0xa
pop ecx
mov dword [esp + 0x28], ecx
test ebx, 0x8000
jne 0x4c50e7
test ebx, 0x1000
je 0x4c523d
mov ebp, dword [edi]
add edi, 8
mov dword [esp + 0x1c], edi
xor esi, esi
mov edi, dword [edi - 4]
jmp 0x4c5270
jne 0x4c510b
cmp dl, 0x67
jne 0x4c5146
mov dword [esp + 0x24], 1
jmp 0x4c5146
cmp eax, ecx
cmovg eax, ecx
mov dword [esp + 0x24], eax
cmp eax, 0xa3
jle 0x4c5146
lea edi, [eax + 0x15d]
push edi
call fcn.004c296d
mov dl, byte [esp + 0x1b]
mov dword [esp + 0x50], eax
pop ecx
test eax, eax
je 0x4c513a
mov esi, eax
mov ebp, edi
jmp 0x4c5142
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 [0x5177a4]
lea eax, [esp + 0x8c]
push esi
push eax
push dword [0x518558]
call ebp
call eax
mov edi, ebx
add esp, 0x1c
and edi, 0x80
je 0x4c51ab
cmp dword [esp + 0x24], 0
jne 0x4c51ab
lea eax, [esp + 0x60]
push eax
push esi
push dword [0x518564]
call ebp
call eax
pop ecx
pop ecx
cmp byte [esp + 0x17], 0x67
jne 0x4c51c8
test edi, edi
jne 0x4c51c8
lea eax, [esp + 0x60]
push eax
push esi
push dword [0x518560]
call ebp
call eax
pop ecx
pop ecx
cmp byte [esi], 0x2d
jne 0x4c51d8
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 0x4c51dd
jmp 0x4c503e
mov dword [esp + 0x24], 8
push 7
jmp 0x4c5211
sub eax, 0x73
je 0x4c4f1e
dec eax
dec eax
je 0x4c50cc
sub eax, 3
jne 0x4c5351
push 0x27
pop eax
mov dword [esp + 0x58], eax
push 0x10
pop ecx
mov dword [esp + 0x28], ecx
test bl, bl
jns 0x4c50d3
add al, 0x51
mov byte [esp + 0x2c], 0x30
mov byte [esp + 0x2d], al
mov dword [esp + 0x30], 2
jmp 0x4c50d3
add edi, 4
xor esi, esi
mov dword [esp + 0x1c], edi
test bl, 0x20
je 0x4c525c
test bl, 0x40
je 0x4c5256
movsx eax, word [edi - 4]
jmp 0x4c5264
movzx eax, word [edi - 4]
jmp 0x4c5264
test bl, 0x40
je 0x4c526b
mov eax, dword [edi - 4]
cdq
mov ebp, eax
mov edi, edx
jmp 0x4c5270
mov ebp, dword [edi - 4]
mov edi, esi
test bl, 0x40
je 0x4c528f
cmp edi, esi
jg 0x4c528f
jl 0x4c527f
cmp ebp, esi
jae 0x4c528f
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 0x4c52a5
xor edx, edx
inc edx
jmp 0x4c52b6
mov eax, 0x200
and ebx, 0xfffffff7
cmp edx, eax
mov dword [esp + 0x18], ebx
cmovg edx, eax
mov eax, ebp
or eax, edi
jne 0x4c52c0
mov dword [esp + 0x30], esi
lea esi, [esp + 0x27f]
mov eax, edx
dec edx
mov dword [esp + 0x24], edx
test eax, eax
jg 0x4c52d8
mov eax, ebp
or eax, edi
je 0x4c5305
mov eax, ecx
cdq
push edx
push eax
push edi
push ebp
call fcn.004c0eb0
add ecx, 0x30
mov dword [esp + 0x74], ebx
mov ebp, eax
mov edi, edx
cmp ecx, 0x39
jle 0x4c52f8
add ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x24]
mov byte [esi], cl
dec esi
mov ecx, dword [esp + 0x28]
jmp 0x4c52c7
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 0x4c5351
test eax, eax
je 0x4c5329
cmp byte [esi], 0x30
je 0x4c5351
dec esi
inc dword [esp + 0x28]
mov byte [esi], 0x30
jmp 0x4c5351
test esi, esi
cmove esi, dword [0x5179a8]
mov ecx, esi
jmp 0x4c5347
dec eax
cmp byte [ecx], 0
je 0x4c534b
inc ecx
test eax, eax
jne 0x4c5340
sub ecx, esi
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x44], 0
jne 0x4c549a
test bl, 0x40
je 0x4c538e
test ebx, 0x100
je 0x4c5370
mov byte [esp + 0x2c], 0x2d
jmp 0x4c5386
test bl, 1
je 0x4c537c
mov byte [esp + 0x2c], 0x2b
jmp 0x4c5386
test bl, 2
je 0x4c538e
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 0x4c53ba
lea eax, [esp + 0x20]
push eax
push ebp
push edi
push 0x20
call fcn.004c557e
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.004c55aa
add esp, 0x14
test bl, 8
je 0x4c53ed
test bl, 4
jne 0x4c53ed
lea eax, [esp + 0x20]
push eax
push ebp
push edi
push 0x30
call fcn.004c557e
add esp, 0x10
cmp dword [esp + 0x3c], 0
mov ebp, dword [esp + 0x28]
je 0x4c5462
test ebp, ebp
jle 0x4c5462
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.004cd3c1
add esp, 0x10
test eax, eax
jne 0x4c5459
cmp dword [esp + 0x5c], eax
je 0x4c5459
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.004c55aa
mov ecx, dword [esp + 0x84]
add esp, 0x14
test ebp, ebp
jne 0x4c53fe
jmp 0x4c5479
or ecx, 0xffffffff
mov dword [esp + 0x20], ecx
jmp 0x4c547d
push dword [esp + 0x54]
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x3c]
push ebp
push esi
call fcn.004c55aa
add esp, 0x14
mov ecx, dword [esp + 0x20]
test ecx, ecx
js 0x4c549e
test bl, 4
je 0x4c549e
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x38]
push edi
push 0x20
call fcn.004c557e
add esp, 0x10
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4c54bc
push eax
call fcn.004bb566
mov ebp, dword [esp + 0x28]
xor eax, eax
pop ecx
mov dword [esp + 0x4c], eax
jmp 0x4c4d0f
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 0x4c4c0b
mov eax, ecx
cmp byte [esp + 0x6c], 0
pop edi
pop esi
pop ebp
pop ebx
je 0x4c54eb
mov ecx, dword [esp + 0x58]
and dword [ecx + 0x70], 0xfffffffd
mov ecx, dword [esp + 0x278]
xor ecx, esp
call fcn.004b94b6
add esp, 0x27c
ret
call fcn.004c2a7f
mov dword [eax], 0x16
call fcn.004c40ce
or eax, 0xffffffff
jmp 0x4c54d8