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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xd4
mov esi, dword [esp + 0xec]
call 0x4bfdb6
pop eax
test esi, esi
js 0x4bfde0
mov ebp, edx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xc], ecx
je 0x4bfde2
movzx eax, byte [0x77618d]
xor ecx, ecx
mov edx, esi
call fcn.00490be0
test eax, eax
mov ebx, esi
jne 0x4bfde9
ud2
mov eax, 1
mov ebx, esi
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
movsd xmm0, qword [ebp]
mov edi, dword [esp + 0xe8]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], eax
xor ebp, ebp
mov dword [esp + 0x70], 0
movd xmm2, esi
movd xmm1, ecx
lea eax, [edi + ebx]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x8c], edx
shufps xmm2, xmm0, 0xd4
unpcklps xmm0, xmm1
mov dword [esp], eax
shufps xmm0, xmm2, 0x21
movups xmmword [esp + 0x74], xmm0
mov dword [esp + 0x84], edx
mov byte [esp + 0x88], 0
jmp 0x4bfe60
lea edi, [edx + 1]
mov ebp, edi
sub ebp, edx
add ebp, esi
cmp eax, 0x21
mov eax, ebp
jae 0x4bfecc
cmp edi, dword [esp]
mov edx, edi
mov esi, ebp
je 0x4bfec5
movzx eax, byte [edx]
test al, al
jns 0x4bfe50
movzx ebx, byte [edx + 1]
mov ecx, eax
and ecx, 0x1f
and ebx, 0x3f
cmp al, 0xdf
jbe 0x4bfeab
mov ebp, esi
movzx esi, byte [edx + 2]
shl ebx, 6
and esi, 0x3f
or esi, ebx
cmp al, 0xf0
jb 0x4bfeb7
movzx eax, byte [edx + 3]
and ecx, 7
shl esi, 6
lea edi, [edx + 4]
shl ecx, 0x12
and eax, 0x3f
or eax, esi
or eax, ecx
jmp 0x4bfec1
shl ecx, 6
lea edi, [edx + 2]
or ecx, ebx
mov eax, ecx
jmp 0x4bfe53
shl ecx, 0xc
lea edi, [edx + 3]
or esi, ecx
mov eax, esi
mov esi, ebp
jmp 0x4bfe53
mov edi, dword [esp]
xor ebp, ebp
mov eax, esi
mov ebx, dword [esp]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], esi
mov dword [esp + 0x14], edi
jmp 0x4bfefc
lea ebx, [esi - 1]
cmp ecx, 0x21
jae 0x4bff7c
cmp edi, ebx
je 0x4bff87
movsx ecx, byte [ebx - 1]
mov esi, ebx
test ecx, ecx
jns 0x4bfef0
movzx ebx, byte [esi - 2]
cmp bl, 0xc0
jge 0x4bff45
movzx eax, byte [esi - 3]
cmp al, 0xc0
mov dword [esp + 0x10], eax
jge 0x4bff51
lea edi, [esi - 4]
mov dword [esp + 4], edi
movzx edi, byte [esi - 4]
and edi, 7
shl edi, 6
mov dword [esp + 8], edi
mov edi, dword [esp + 0x10]
and edi, 0x3f
add edi, dword [esp + 8]
jmp 0x4bff5f
lea edi, [esi - 2]
and ebx, 0x1f
mov dword [esp + 4], edi
jmp 0x4bff67
lea edi, [esi - 3]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x10]
and edi, 0xf
shl edi, 6
and ebx, 0x3f
or ebx, edi
mov edi, dword [esp + 0x14]
shl ebx, 6
and ecx, 0x3f
or ecx, ebx
mov ebx, dword [esp + 4]
cmp ecx, 0x21
jb 0x4bfefc
mov ebp, dword [esp + 0xb8]
sub ebp, edi
add ebp, esi
xor eax, eax
cmp edx, dword [esp]
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xec]
cmove edx, eax
mov eax, dword [esp + 0xe8]
cmp dword [esp + 0x18], 0
lea eax, [eax + edx]
mov dword [esp + 4], eax
je 0x4c009d
mov eax, ebp
sub eax, edx
cmp eax, ecx
jae 0x4bffd1
push 1
push dword [esp + 0x1c]
mov eax, dword [esp + 0x94]
call dword [eax + 0x14]
add esp, 8
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 4]
mov edi, 0x2600
add eax, ebp
jmp 0x4c0009
shl esi, 6
add edx, 2
or esi, ecx
mov ebx, esi
cmp ebx, 0xd
ja 0x4c0009
nop word cs:[eax + eax]
nop
bt edi, ebx
jb 0x4c008a
cmp edx, eax
je 0x4c009d
movzx ebx, byte [edx]
test bl, bl
js 0x4c0020
inc edx
cmp ebx, 0xd
jbe 0x4c0000
jmp 0x4c0009
movzx ecx, byte [edx + 1]
mov esi, ebx
and esi, 0x1f
and ecx, 0x3f
cmp bl, 0xdf
jbe 0x4bffe5
movzx edi, byte [edx + 2]
shl ecx, 6
and edi, 0x3f
or edi, ecx
cmp bl, 0xf0
jb 0x4c006d
movzx ebx, byte [edx + 3]
and esi, 7
shl edi, 6
shl esi, 0x12
and ebx, 0x3f
or ebx, edi
mov edi, 0x2600
or ebx, esi
cmp ebx, 0x110000
je 0x4c009d
add edx, 4
cmp ebx, 0xd
jbe 0x4c0000
jmp 0x4c0009
shl esi, 0xc
add edx, 3
or edi, esi
mov ebx, edi
mov edi, 0x2600
cmp ebx, 0xd
jbe 0x4c0000
jmp 0x4c0009
push 9
push dword [esp + 0x1c]
mov eax, dword [esp + 0x94]
call dword [eax + 0x14]
add esp, 8
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 4]
add eax, ebp
mov ebp, eax
mov eax, 0x2600
jmp 0x4c00e4
inc ecx
cmp edx, 0xd
ja 0x4c0170
mov esi, 0x110000
bt eax, edx
jae 0x4c0170
cmp esi, 0x110000
jne 0x4c017e
cmp ecx, ebp
je 0x4c0391
movzx edx, byte [ecx]
test dl, dl
jns 0x4c00c0
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4c013f
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4c0154
movzx edx, byte [ecx + 3]
and esi, 7
shl edi, 6
shl esi, 0x12
and edx, 0x3f
or edx, edi
or edx, esi
cmp edx, 0x110000
je 0x4c0391
add ecx, 4
cmp edx, 0xd
jbe 0x4c00ca
jmp 0x4c0170
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4c00ca
jmp 0x4c0170
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4c00ca
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4c00e4
mov ecx, dword [esp + 4]
mov eax, 0x2600
jmp 0x4c01b4
inc ecx
cmp edx, 0xd
ja 0x4c0240
mov esi, 0x110000
bt eax, edx
jae 0x4c0240
cmp esi, 0x110000
jne 0x4c024e
cmp ecx, ebp
je 0x4c0391
movzx edx, byte [ecx]
test dl, dl
jns 0x4c0190
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4c020f
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4c0224
movzx edx, byte [ecx + 3]
and esi, 7
shl edi, 6
shl esi, 0x12
and edx, 0x3f
or edx, edi
or edx, esi
cmp edx, 0x110000
je 0x4c0391
add ecx, 4
cmp edx, 0xd
jbe 0x4c019a
jmp 0x4c0240
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4c019a
jmp 0x4c0240
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4c019a
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4c01b4
and esi, 0xffffffdf
add esi, 0xffffffbf
cmp esi, 0x19
ja 0x4c0391
mov dword [esp], ebp
mov ebp, dword [esp + 4]
lea ebx, [esp + 0x68]
mov edi, 0x2600
jmp 0x4c0290
mov edx, eax
or edx, 0x20
cmp ecx, 0x1a
mov ecx, ebx
cmovae edx, eax
call fcn.004bf630
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ebp, dword [esp]
je 0x4c0553
movzx eax, byte [ebp]
test al, al
js 0x4c02b0
inc ebp
cmp eax, 0xd
jbe 0x4c0305
jmp 0x4c0330
movzx esi, byte [ebp + 1]
mov ecx, eax
and ecx, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x4c030c
movzx edx, byte [ebp + 2]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp al, 0xf0
jb 0x4c031d
movzx eax, byte [ebp + 3]
and ecx, 7
shl edx, 6
add ebp, 4
shl ecx, 0x12
and eax, 0x3f
or eax, edx
or eax, ecx
cmp eax, 0x110000
je 0x4c0556
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0xd
ja 0x4c0330
bt edi, eax
jb 0x4c0290
jmp 0x4c0330
shl ecx, 6
add ebp, 2
or ecx, esi
mov eax, ecx
cmp eax, 0xd
jbe 0x4c0305
jmp 0x4c0330
shl ecx, 0xc
add ebp, 3
or edx, ecx
mov eax, edx
cmp eax, 0xd
jbe 0x4c0305
nop dword [eax]
cmp eax, 0x110000
je 0x4c0290
lea ecx, [eax - 0x61]
lea esi, [eax - 0x30]
cmp ecx, 0x1a
lea ecx, [eax - 0x41]
setb dl
cmp ecx, 0x1a
setb dh
or dh, dl
cmp esi, 0xa
setb dl
or dl, dh
jne 0x4c026f
lea edx, [eax - 0x2d]
cmp edx, 2
jb 0x4c026f
cmp eax, 0x2b
je 0x4c026f
cmp eax, 0x3a
je 0x4c0564
mov dword [esp + 0x70], 0
mov ebp, dword [esp]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x40], 0
je 0x4c04ed
mov ecx, dword [esp + 4]
mov eax, 0x2600
jmp 0x4c03d4
inc ecx
cmp edx, 0xd
ja 0x4c0460
mov esi, 0x110000
bt eax, edx
jae 0x4c0460
cmp esi, 0x110000
jne 0x4c046e
cmp ecx, ebp
je 0x4c04cc
movzx edx, byte [ecx]
test dl, dl
jns 0x4c03b0
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4c042f
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4c0444
movzx edx, byte [ecx + 3]
and esi, 7
shl edi, 6
shl esi, 0x12
and edx, 0x3f
or edx, edi
or edx, esi
cmp edx, 0x110000
je 0x4c04cc
add ecx, 4
cmp edx, 0xd
jbe 0x4c03ba
jmp 0x4c0460
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4c03ba
jmp 0x4c0460
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4c03ba
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4c03d4
cmp esi, 0x23
jne 0x4c04cc
movsd xmm1, qword [esp + 0x78]
mov eax, dword [esp + 0x88]
movsd xmm0, qword [esp + 0x80]
movsd xmm2, qword [esp + 0x68]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x1c]
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [esp + 0x70]
mov dword [esp + 0x3c], eax
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x1c], xmm2
movsd qword [esp + 0x24], xmm1
push ebp
push dword [esp + 8]
push dword [esp + 0x48]
call fcn.004c6000
add esp, 0xc
jmp 0x4c0548
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x20]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov esi, edx
inc esi
je 0x4c04f7
cmp esi, eax
jae 0x4c04f1
cmp byte [ecx + esi], 0xbf
jg 0x4c04f7
jmp 0x4bfde0
mov bl, 6
jmp 0x4c0522
jne 0x4bfde0
mov bl, 7
cmp eax, esi
je 0x4c0522
cmp byte [ecx + esi], 0x2f
jne 0x4c0522
test edx, edx
je 0x4c05de
cmp edx, eax
jae 0x4c05d8
cmp byte [ecx + edx], 0xbf
jg 0x4c05de
jmp 0x4bfde0
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x68], 0
mov byte [eax + 4], bl
mov dword [eax], 2
je 0x4c0548
push dword [esp + 0x6c]
push 0
push dword [0x776180]
call dword [sym.imp.KERNEL32.dll_HeapFree]
add esp, 0xd4
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebp, dword [esp]
cmp byte [esp + 0x88], 1
jne 0x4c037e
movsd xmm1, qword [esp + 0x80]
movsd xmm0, qword [esp + 0x70]
mov eax, dword [esp + 0x88]
movsd xmm2, qword [esp + 0x78]
mov ecx, dword [esp + 0x70]
movsd qword [esp + 0x5c], xmm1
movsd xmm1, qword [esp + 0x68]
movsd qword [esp + 0x4c], xmm0
mov dword [esp + 0x64], eax
movsd qword [esp + 0x54], xmm2
add ecx, 0xfffffffe
cmp ecx, 3
movsd qword [esp + 0x44], xmm1
mov edi, dword [esp + 0x4c]
ja 0x4c05d1
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0x6c]
add edx, dword [ecx*4 + 0x4c100c]
jmp edx
mov bl, 2
jmp 0x4c0702
jne 0x4bfde0
call fcn.004c6260
test al, al
je 0x4c0644
mov ecx, dword [esp + 0x88]
movsd xmm1, qword [esp + 0x78]
movsd xmm0, qword [esp + 0x80]
movsd xmm2, qword [esp + 0x68]
lea edx, [esp + 0x1c]
movzx eax, al
mov dword [esp + 0x3c], ecx
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [esp + 0x70]
mov ecx, dword [esp + 0xc]
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x1c], xmm2
movsd qword [esp + 0x24], xmm1
push dword [esp + 0x40]
push eax
push ebp
push dword [esp + 0x10]
call fcn.004c53e0
jmp 0x4c0fac
movsd xmm1, qword [esp + 0x78]
mov eax, dword [esp + 0x88]
movsd xmm0, qword [esp + 0x80]
movsd xmm2, qword [esp + 0x68]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x1c]
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [esp + 0x70]
mov dword [esp + 0x3c], eax
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x1c], xmm2
movsd qword [esp + 0x24], xmm1
push dword [esp + 0x40]
push ebp
push dword [esp + 0xc]
jmp 0x4c0de6
cmp edi, dword [esp + 0x44]
jne 0x4c0711
lea ecx, [esp + 0x44]
call fcn.004058c0
mov ecx, dword [esp + 0x48]
test bl, bl
lea eax, [edi + 1]
mov byte [ecx + edi], 0x3a
mov dword [esp + 0x4c], eax
je 0x4c07fb
movzx eax, bl
mov dword [esp + 4], edi
cmp eax, 2
jne 0x4c086a
mov eax, dword [esp + 0x64]
movsd xmm1, qword [esp + 0x54]
movsd xmm0, qword [esp + 0x5c]
movsd xmm2, qword [esp + 0x44]
mov dword [esp + 0x1c], ebp
mov ecx, 0x771470
mov edx, 2
mov dword [esp + 0xb0], eax
mov eax, dword [esp]
movsd qword [esp + 0xa0], xmm1
movsd xmm1, qword [esp + 0x4c]
movsd qword [esp + 0xa8], xmm0
movsd qword [esp + 0x90], xmm2
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
movsd qword [esp + 0x98], xmm1
push eax
call fcn.004c10f0
add esp, 4
test al, al
je 0x4c0999
movsd xmm1, qword [esp + 0x54]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x20]
movsd xmm0, qword [esp + 0x5c]
movsd xmm2, qword [esp + 0x44]
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x1c]
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [esp + 0x4c]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0xc]
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x1c], xmm2
movsd qword [esp + 0x24], xmm1
push edi
push 2
push esi
push eax
jmp 0x4c0fa7
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4c0836
mov eax, dword [esp]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x1c], ebp
mov ecx, 0x771470
mov edx, 2
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
call fcn.004c10f0
add esp, 4
test al, al
jne 0x4c0836
push 4
push esi
call dword [edi + 0x14]
add esp, 8
mov ecx, dword [esp + 0x50]
xor eax, eax
test ecx, ecx
je 0x4c0d98
mov esi, dword [ecx + 0x20]
test esi, esi
je 0x4c0d98
mov edx, dword [ecx + 0x14]
cmp esi, dword [ecx + 0x18]
jae 0x4c0d70
cmp byte [edx + esi], 0xbf
jg 0x4c0d76
jmp 0x4bfde0
mov edx, 0x2600
mov edi, ebp
mov dword [esp + 8], ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ebp
cmp edi, dword [esp]
jne 0x4c08b7
jmp 0x4c0952
inc edi
cmp ebx, 0xd
ja 0x4c092a
mov eax, 0x110000
bt edx, ebx
jae 0x4c092a
cmp eax, 0x110000
jne 0x4c0937
cmp edi, dword [esp]
je 0x4c0952
movzx ebx, byte [edi]
test bl, bl
jns 0x4c088b
movzx eax, byte [edi + 1]
mov esi, ebx
and esi, 0x1f
and eax, 0x3f
cmp bl, 0xdf
jbe 0x4c0906
movzx ecx, byte [edi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
cmp bl, 0xf0
jb 0x4c0917
movzx ebx, byte [edi + 3]
and esi, 7
shl ecx, 6
shl esi, 0x12
and ebx, 0x3f
or ebx, ecx
or ebx, esi
cmp ebx, 0x110000
je 0x4c0952
add edi, 4
cmp ebx, 0xd
jbe 0x4c0895
jmp 0x4c092a
shl esi, 6
add edi, 2
or esi, eax
mov ebx, esi
cmp ebx, 0xd
jbe 0x4c0895
jmp 0x4c092a
shl esi, 0xc
add edi, 3
or ecx, esi
mov ebx, ecx
cmp ebx, 0xd
jbe 0x4c0895
mov eax, ebx
cmp eax, 0x110000
je 0x4c08ae
cmp eax, 0x5c
je 0x4c0941
cmp eax, 0x2f
jne 0x4c0952
inc dword [esp + 0x14]
mov dword [esp + 0x10], edi
cmp edi, dword [esp]
jne 0x4c08b7
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 4]
mov edx, dword [esp + 8]
test esi, esi
setne al
cmp dword [esp + 0x14], 2
setb cl
test cl, al
je 0x4c0e19
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x4c0df9
cmp eax, dword [esi + 0x18]
jae 0x4c0df3
cmp byte [ecx + eax], 0xbf
jg 0x4c0df9
jmp 0x4bfde0
mov eax, dword [esp + 0x98]
mov ebx, ebp
mov byte [esp + 0xc3], 0
mov dword [esp + 0x18], eax
mov eax, 0x2600
jmp 0x4c09c3
mov edx, ecx
cmp edx, 0x110000
jne 0x4c0a5b
cmp ebx, dword [esp]
je 0x4c0ab6
movzx ecx, byte [ebx]
test cl, cl
js 0x4c09d6
inc ebx
jmp 0x4c0a3f
movzx edi, byte [ebx + 1]
mov edx, ecx
and edx, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x4c0a21
movzx esi, byte [ebx + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp cl, 0xf0
jb 0x4c0a31
movzx ecx, byte [ebx + 3]
and edx, 7
shl esi, 6
mov edi, dword [esp + 4]
shl edx, 0x12
and ecx, 0x3f
or ecx, esi
or ecx, edx
cmp ecx, 0x110000
je 0x4c0ab6
add ebx, 4
jmp 0x4c0a3f
shl edx, 6
add ebx, 2
or edx, edi
mov edi, dword [esp + 4]
mov ecx, edx
jmp 0x4c0a3f
mov edi, dword [esp + 4]
shl edx, 0xc
add ebx, 3
or esi, edx
mov ecx, esi
cmp ecx, 0xd
ja 0x4c09b5
mov edx, 0x110000
bt eax, ecx
jb 0x4c09b7
jmp 0x4c09b5
cmp edx, 0x2f
jne 0x4c0ab6
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 0x90]
jne 0x4c0a79
lea ecx, [esp + 0x90]
call fcn.004058c0
mov eax, dword [esp + 0x94]
mov edx, 2
lea ecx, [esp + 0x90]
mov byte [eax + esi], 0x2f
lea eax, [esi + 1]
mov byte [esp + 0x1c], 0
mov dword [esp + 0x98], eax
push dword [esp]
push ebx
push esi
lea eax, [esp + 0x28]
push eax
call fcn.004c2a30
add esp, 0x10
jmp 0x4c0cdb
mov eax, dword [esp]
cmp ebp, eax
je 0x4c0cd0
mov eax, dword [esp + 0x18]
mov edx, 0x2600
mov dword [esp + 8], eax
mov ecx, ebp
mov edi, ebp
movzx eax, byte [edi]
test al, al
js 0x4c0ae0
lea ebp, [edi + 1]
mov ebx, eax
jmp 0x4c0b30
movzx esi, byte [edi + 1]
mov ebx, eax
and ebx, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x4c0b19
movzx edx, byte [edi + 2]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp al, 0xf0
jb 0x4c0b23
movzx eax, byte [edi + 3]
and ebx, 7
shl edx, 6
lea ebp, [edi + 4]
shl ebx, 0x12
and eax, 0x3f
or eax, edx
or ebx, eax
jmp 0x4c0b2b
shl ebx, 6
lea ebp, [edi + 2]
or ebx, esi
jmp 0x4c0b30
shl ebx, 0xc
lea ebp, [edi + 3]
or ebx, edx
mov edx, 0x2600
cmp ebx, 0xd
ja 0x4c0b48
bt edx, ebx
jae 0x4c0b48
cmp ebp, dword [esp]
mov edi, ebp
mov eax, ebp
jne 0x4c0ad2
jmp 0x4c0cd0
mov esi, 1
cmp ebx, 0x80
jb 0x4c0b70
mov esi, 2
cmp ebx, 0x800
jb 0x4c0b70
cmp ebx, 0x10000
mov esi, 4
sbb esi, 0
mov eax, dword [esp]
sub eax, edi
cmp esi, eax
jae 0x4c0b84
cmp byte [edi + esi], 0xbf
jg 0x4c0b8a
jmp 0x4bfde0
jne 0x4bfde0
cmp ebx, 0x23
je 0x4c0b94
cmp ebx, 0x3f
jne 0x4c0ba4
cmp byte [esp + 0xb0], 0
mov eax, ecx
je 0x4c0cd0
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
push dword [esp]
push ebp
push ebx
call fcn.004c6530
add esp, 0xc
mov edx, dword [esp + 8]
jmp 0x4c0c13
inc edi
dec esi
mov dword [esp + 0x10], edi
mov ebx, esi
lea edi, [eax + eax*2 + str._00_01_02_03_04_05_06_07_08_09_0A_0B_0C_0D_0E_0F_10_11_12_13_14_15_16_17_18_19_1A_1B_1C_1D_1E_1F_20_21_22_23_24_25_26_27_28_29_2A_2B_2C_2D_2E_2F_30_31_32_33_34_35_36_37_38_39_3A_3B_3C_3D_3E_3F_40_41_42_43_44_45_46_47_48_49_4A_4B_4C_4D_4E_4F_50_51_52_53_54_55_56_57_58_59_5A_5B_5C_5D_5E_5F_60_61_62_63_64_65_66_67_68_69_6A_6B_6C_6D_6E_6F_70_71_72_73_74_75_76_77_78_79_7A_7B_7C_7D_7E_7F_80_81_82_83_84_85_86_87_88_89_8A_8B_8C_8D_8E_8F_90_91_92_93_94_95_96_97_98_99_9A_9B_9C_9D_9E_9F_A0_A1_A2_A3_A4_A5_A6_A7_A8_A9_AA_AB_AC_AD_AE_AF_B0_B1_B2_B3_B4_B5_B6_B7_B8_B9_BA_BB_BC_BD_BE_BF_C0_C1_C2_C3_C4_C5_C6_C7_C8_C9_CA_CB_CC_CD_CE_CF_D0_D1_D2_D3_D4_D5_D6_D7_D8_D9_DA_DB_DC_DD_DE_DF_E0_E1_E2_E3_E4_E5_E6_E7_E8_E9_EA_EB_EC_ED_EE_EF_F0_F1_F2_F3_F4_F5_F6_F7_F8_F9_FA_FB_FC_FD_FE_FF]
mov esi, 3
mov eax, dword [esp + 0x90]
sub eax, edx
cmp eax, esi
jb 0x4c0c9c
mov eax, dword [esp + 0x94]
add eax, edx
push esi
push edi
push eax
mov edi, esi
mov esi, edx
call sub.VCRUNTIME140.dll_memcpy
mov edx, esi
add esp, 0xc
add edx, edi
mov edi, dword [esp + 0x10]
mov esi, ebx
mov dword [esp + 0x98], edx
test esi, esi
je 0x4c0cbc
movzx eax, byte [edi]
test al, al
js 0x4c0bc5
mov ecx, eax
shr ecx, 5
mov ecx, dword [ecx*4 + 0x771454]
bt ecx, eax
jb 0x4c0bc5
mov dword [esp + 8], edx
mov edx, 1
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], edi
mov ebx, esi
sub ebx, edx
je 0x4c0c91
movsx ecx, byte [edi + edx]
mov eax, edx
test ecx, ecx
js 0x4c0c74
mov edx, ecx
mov edi, esi
shr edx, 5
mov esi, dword [edx*4 + 0x771454]
lea edx, [eax + 1]
bt esi, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
jae 0x4c0c48
mov edx, dword [esp + 8]
lea ecx, [eax - 1]
cmp ecx, esi
jae 0x4bfde0
lea ecx, [edi + eax]
mov esi, eax
mov dword [esp + 0x10], ecx
jmp 0x4c0bd9
mov edx, dword [esp + 8]
xor ebx, ebx
jmp 0x4c0bd9
lea ecx, [esp + 0x90]
push 1
push 1
push esi
call fcn.004e6420
add esp, 0xc
mov edx, dword [esp + 0x98]
jmp 0x4c0bea
cmp ebp, dword [esp]
mov dword [esp + 8], edx
mov eax, ebp
mov edx, 0x2600
jne 0x4c0ace
mov edx, dword [esp]
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x18]
movsd xmm1, qword [esp + 0xa0]
mov ecx, dword [esp + 0xb0]
movsd xmm0, qword [esp + 0xa8]
movsd xmm2, qword [esp + 0x90]
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [esp + 0x98]
mov dword [esp + 0x3c], ecx
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x1c], xmm2
movsd qword [esp + 0x24], xmm1
sub esp, 0x2c
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
lea eax, [esp + 0xef]
lea edx, [esp + 0x48]
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], esi
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp + 0x18], 0
mov dword [esp], 2
mov dword [esp + 0x14], eax
call fcn.004c3ac0
add esp, 0x2c
jmp 0x4c0548
jne 0x4bfde0
cmp esi, 4
jne 0x4c0d98
mov edx, dword [edx]
xor ebx, ebx
bswap edx
cmp edx, 0x66696c66
setae bl
xor eax, eax
cmp edx, 0x66696c65
sbb ebx, 0
cmove eax, ecx
mov dword [esp + 0x4c], 0
lea edx, [esp + 0x1c]
mov ecx, dword [esp + 0x64]
movsd xmm0, qword [esp + 0x5c]
movsd xmm1, qword [esp + 0x54]
movsd xmm2, qword [esp + 0x4c]
mov dword [esp + 0x3c], ecx
movsd qword [esp + 0x34], xmm0
movsd xmm0, qword [esp + 0x44]
mov ecx, dword [esp + 0xc]
movsd qword [esp + 0x2c], xmm1
movsd qword [esp + 0x24], xmm2
movsd qword [esp + 0x1c], xmm0
push eax
push dword [esp + 4]
push ebp
call fcn.004c3e30
add esp, 0xc
jmp 0x4c0548
jne 0x4bfde0
cmp edi, 0xffffffff
je 0x4bfde0
cmp eax, edi
jne 0x4c0e19
push edi
push edx
push ecx
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4c0fb4
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4c0f5c
mov eax, dword [esp + 0x60]
mov edi, 0x2600
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], eax
nop word [eax + eax]
cmp ebp, dword [esp]
je 0x4c0f1b
movzx ebx, byte [ebp]
test bl, bl
js 0x4c0e7a
inc ebp
cmp ebx, 0x2e
jg 0x4c0ed1
cmp ebx, 0xd
ja 0x4c0f1b
bt edi, ebx
jb 0x4c0e50
jmp 0x4c0f1b
movzx edx, byte [ebp + 1]
mov eax, ebx
and eax, 0x1f
and edx, 0x3f
cmp bl, 0xdf
jbe 0x4c0ec2
movzx ecx, byte [ebp + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bl, 0xf0
jb 0x4c0f06
movzx ebx, byte [ebp + 3]
and eax, 7
shl ecx, 6
shl eax, 0x12
and ebx, 0x3f
or ebx, ecx
or ebx, eax
cmp ebx, 0x110000
je 0x4c0f1b
add ebp, 4
cmp ebx, 0x2e
jle 0x4c0e67
jmp 0x4c0ed1
shl eax, 6
add ebp, 2
or eax, edx
mov ebx, eax
cmp ebx, 0x2e
jle 0x4c0e67
cmp ebx, 0x2f
je 0x4c0ee7
cmp ebx, 0x110000
je 0x4c0e50
cmp ebx, 0x5c
jne 0x4c0f1b
lea ecx, [esp + 0x1c]
mov edx, ebx
call fcn.004bf630
cmp ebx, 0x2f
je 0x4c0e50
cmp ebx, 0x5c
je 0x4c0e50
jmp 0x4c0f1b
shl eax, 0xc
add ebp, 3
or ecx, eax
mov ebx, ecx
cmp ebx, 0x2e
jle 0x4c0e67
jmp 0x4c0ed1
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x24], 2
mov bl, 1
jne 0x4c0f34
cmp word [eax], 0x2f2f
setne bl
mov edi, dword [esp + 4]
test ecx, ecx
je 0x4c0f4b
push eax
push 0
push dword [0x776180]
call dword [sym.imp.KERNEL32.dll_HeapFree]
test bl, bl
je 0x4c0f5c
push 3
push esi
mov eax, dword [esp + 0x1c]
call dword [eax + 0x14]
add esp, 8
movsd xmm1, qword [esp + 0x54]
mov eax, dword [esp + 0x64]
movsd xmm0, qword [esp + 0x5c]
movsd xmm2, qword [esp + 0x44]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x1c]
movsd qword [esp + 0x2c], xmm1
movsd xmm1, qword [esp + 0x4c]
mov dword [esp + 0x3c], eax
movsd qword [esp + 0x34], xmm0
movsd qword [esp + 0x1c], xmm2
movsd qword [esp + 0x24], xmm1
push edi
push 1
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004c12c0
add esp, 0x10
jmp 0x4c0548
mov dword [esp + 0x4c], 0
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x1c]
movsd xmm0, qword [esp + 0x5c]
mov eax, dword [esp + 0x64]
movsd xmm1, qword [esp + 0x54]
movsd xmm2, qword [esp + 0x4c]
movsd qword [esp + 0x34], xmm0
movsd xmm0, qword [esp + 0x44]
mov dword [esp + 0x3c], eax
movsd qword [esp + 0x2c], xmm1
movsd qword [esp + 0x24], xmm2
movsd qword [esp + 0x1c], xmm0
push esi
push 1
push dword [esp + 8]
push ebp
jmp 0x4c063a