Function at 0x4b9390
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 0x4b93a6
pop eax
test esi, esi
js 0x4b93d0
mov ebp, edx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xc], ecx
je 0x4b93d2
movzx eax, byte [0x62314d]
xor ecx, ecx
mov edx, esi
call fcn.0048bb80
test eax, eax
mov ebx, esi
jne 0x4b93d9
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 0x4b9450
lea edi, [edx + 1]
mov ebp, edi
sub ebp, edx
add ebp, esi
cmp eax, 0x21
mov eax, ebp
jae 0x4b94bc
cmp edi, dword [esp]
mov edx, edi
mov esi, ebp
je 0x4b94b5
movzx eax, byte [edx]
test al, al
jns 0x4b9440
movzx ebx, byte [edx + 1]
mov ecx, eax
and ecx, 0x1f
and ebx, 0x3f
cmp al, 0xdf
jbe 0x4b949b
mov ebp, esi
movzx esi, byte [edx + 2]
shl ebx, 6
and esi, 0x3f
or esi, ebx
cmp al, 0xf0
jb 0x4b94a7
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 0x4b94b1
shl ecx, 6
lea edi, [edx + 2]
or ecx, ebx
mov eax, ecx
jmp 0x4b9443
shl ecx, 0xc
lea edi, [edx + 3]
or esi, ecx
mov eax, esi
mov esi, ebp
jmp 0x4b9443
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 0x4b94ec
lea ebx, [esi - 1]
cmp ecx, 0x21
jae 0x4b956c
cmp edi, ebx
je 0x4b9577
movsx ecx, byte [ebx - 1]
mov esi, ebx
test ecx, ecx
jns 0x4b94e0
movzx ebx, byte [esi - 2]
cmp bl, 0xc0
jge 0x4b9535
movzx eax, byte [esi - 3]
cmp al, 0xc0
mov dword [esp + 0x10], eax
jge 0x4b9541
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 0x4b954f
lea edi, [esi - 2]
and ebx, 0x1f
mov dword [esp + 4], edi
jmp 0x4b9557
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 0x4b94ec
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 0x4b968d
mov eax, ebp
sub eax, edx
cmp eax, ecx
jae 0x4b95c1
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 0x4b95f9
shl esi, 6
add edx, 2
or esi, ecx
mov ebx, esi
cmp ebx, 0xd
ja 0x4b95f9
nop word cs:[eax + eax]
nop
bt edi, ebx
jb 0x4b967a
cmp edx, eax
je 0x4b968d
movzx ebx, byte [edx]
test bl, bl
js 0x4b9610
inc edx
cmp ebx, 0xd
jbe 0x4b95f0
jmp 0x4b95f9
movzx ecx, byte [edx + 1]
mov esi, ebx
and esi, 0x1f
and ecx, 0x3f
cmp bl, 0xdf
jbe 0x4b95d5
movzx edi, byte [edx + 2]
shl ecx, 6
and edi, 0x3f
or edi, ecx
cmp bl, 0xf0
jb 0x4b965d
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 0x4b968d
add edx, 4
cmp ebx, 0xd
jbe 0x4b95f0
jmp 0x4b95f9
shl esi, 0xc
add edx, 3
or edi, esi
mov ebx, edi
mov edi, 0x2600
cmp ebx, 0xd
jbe 0x4b95f0
jmp 0x4b95f9
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 0x4b96d4
inc ecx
cmp edx, 0xd
ja 0x4b9760
mov esi, 0x110000
bt eax, edx
jae 0x4b9760
cmp esi, 0x110000
jne 0x4b976e
cmp ecx, ebp
je 0x4b9981
movzx edx, byte [ecx]
test dl, dl
jns 0x4b96b0
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4b972f
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4b9744
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 0x4b9981
add ecx, 4
cmp edx, 0xd
jbe 0x4b96ba
jmp 0x4b9760
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4b96ba
jmp 0x4b9760
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4b96ba
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4b96d4
mov ecx, dword [esp + 4]
mov eax, 0x2600
jmp 0x4b97a4
inc ecx
cmp edx, 0xd
ja 0x4b9830
mov esi, 0x110000
bt eax, edx
jae 0x4b9830
cmp esi, 0x110000
jne 0x4b983e
cmp ecx, ebp
je 0x4b9981
movzx edx, byte [ecx]
test dl, dl
jns 0x4b9780
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4b97ff
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4b9814
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 0x4b9981
add ecx, 4
cmp edx, 0xd
jbe 0x4b978a
jmp 0x4b9830
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4b978a
jmp 0x4b9830
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4b978a
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4b97a4
and esi, 0xffffffdf
add esi, 0xffffffbf
cmp esi, 0x19
ja 0x4b9981
mov dword [esp], ebp
mov ebp, dword [esp + 4]
lea ebx, [esp + 0x68]
mov edi, 0x2600
jmp 0x4b9880
mov edx, eax
or edx, 0x20
cmp ecx, 0x1a
mov ecx, ebx
cmovae edx, eax
call fcn.004b8c20
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ebp, dword [esp]
je 0x4b9b43
movzx eax, byte [ebp]
test al, al
js 0x4b98a0
inc ebp
cmp eax, 0xd
jbe 0x4b98f5
jmp 0x4b9920
movzx esi, byte [ebp + 1]
mov ecx, eax
and ecx, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x4b98fc
movzx edx, byte [ebp + 2]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp al, 0xf0
jb 0x4b990d
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 0x4b9b46
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0xd
ja 0x4b9920
bt edi, eax
jb 0x4b9880
jmp 0x4b9920
shl ecx, 6
add ebp, 2
or ecx, esi
mov eax, ecx
cmp eax, 0xd
jbe 0x4b98f5
jmp 0x4b9920
shl ecx, 0xc
add ebp, 3
or edx, ecx
mov eax, edx
cmp eax, 0xd
jbe 0x4b98f5
nop dword [eax]
cmp eax, 0x110000
je 0x4b9880
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 0x4b985f
lea edx, [eax - 0x2d]
cmp edx, 2
jb 0x4b985f
cmp eax, 0x2b
je 0x4b985f
cmp eax, 0x3a
je 0x4b9b54
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 0x4b9add
mov ecx, dword [esp + 4]
mov eax, 0x2600
jmp 0x4b99c4
inc ecx
cmp edx, 0xd
ja 0x4b9a50
mov esi, 0x110000
bt eax, edx
jae 0x4b9a50
cmp esi, 0x110000
jne 0x4b9a5e
cmp ecx, ebp
je 0x4b9abc
movzx edx, byte [ecx]
test dl, dl
jns 0x4b99a0
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4b9a1f
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4b9a34
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 0x4b9abc
add ecx, 4
cmp edx, 0xd
jbe 0x4b99aa
jmp 0x4b9a50
shl esi, 6
add ecx, 2
or esi, ebx
mov edx, esi
cmp edx, 0xd
jbe 0x4b99aa
jmp 0x4b9a50
shl esi, 0xc
add ecx, 3
or edi, esi
mov edx, edi
cmp edx, 0xd
jbe 0x4b99aa
nop word [eax + eax]
mov esi, edx
cmp esi, 0x110000
je 0x4b99c4
cmp esi, 0x23
jne 0x4b9abc
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.004bf5f0
add esp, 0xc
jmp 0x4b9b38
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 0x4b9ae7
cmp esi, eax
jae 0x4b9ae1
cmp byte [ecx + esi], 0xbf
jg 0x4b9ae7
jmp 0x4b93d0
mov bl, 6
jmp 0x4b9b12
jne 0x4b93d0
mov bl, 7
cmp eax, esi
je 0x4b9b12
cmp byte [ecx + esi], 0x2f
jne 0x4b9b12
test edx, edx
je 0x4b9bce
cmp edx, eax
jae 0x4b9bc8
cmp byte [ecx + edx], 0xbf
jg 0x4b9bce
jmp 0x4b93d0
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x68], 0
mov byte [eax + 4], bl
mov dword [eax], 2
je 0x4b9b38
push dword [esp + 0x6c]
push 0
push dword [0x623140]
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 0x4b996e
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 0x4b9bc1
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0x6c]
add edx, dword [ecx*4 + 0x4ba5fc]
jmp edx
mov bl, 2
jmp 0x4b9cf2
jne 0x4b93d0
call fcn.004bf850
test al, al
je 0x4b9c34
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.004be9d0
jmp 0x4ba59c
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 0x4ba3d6
cmp edi, dword [esp + 0x44]
jne 0x4b9d01
lea ecx, [esp + 0x44]
call fcn.00403e80
mov ecx, dword [esp + 0x48]
test bl, bl
lea eax, [edi + 1]
mov byte [ecx + edi], 0x3a
mov dword [esp + 0x4c], eax
je 0x4b9deb
movzx eax, bl
mov dword [esp + 4], edi
cmp eax, 2
jne 0x4b9e5a
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, 0x61ece0
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.004ba6e0
add esp, 4
test al, al
je 0x4b9f89
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 0x4ba597
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4b9e26
mov eax, dword [esp]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x1c], ebp
mov ecx, 0x61ece0
mov edx, 2
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
call fcn.004ba6e0
add esp, 4
test al, al
jne 0x4b9e26
push 4
push esi
call dword [edi + 0x14]
add esp, 8
mov ecx, dword [esp + 0x50]
xor eax, eax
test ecx, ecx
je 0x4ba388
mov esi, dword [ecx + 0x20]
test esi, esi
je 0x4ba388
mov edx, dword [ecx + 0x14]
cmp esi, dword [ecx + 0x18]
jae 0x4ba360
cmp byte [edx + esi], 0xbf
jg 0x4ba366
jmp 0x4b93d0
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 0x4b9ea7
jmp 0x4b9f42
inc edi
cmp ebx, 0xd
ja 0x4b9f1a
mov eax, 0x110000
bt edx, ebx
jae 0x4b9f1a
cmp eax, 0x110000
jne 0x4b9f27
cmp edi, dword [esp]
je 0x4b9f42
movzx ebx, byte [edi]
test bl, bl
jns 0x4b9e7b
movzx eax, byte [edi + 1]
mov esi, ebx
and esi, 0x1f
and eax, 0x3f
cmp bl, 0xdf
jbe 0x4b9ef6
movzx ecx, byte [edi + 2]
shl eax, 6
and ecx, 0x3f
or ecx, eax
cmp bl, 0xf0
jb 0x4b9f07
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 0x4b9f42
add edi, 4
cmp ebx, 0xd
jbe 0x4b9e85
jmp 0x4b9f1a
shl esi, 6
add edi, 2
or esi, eax
mov ebx, esi
cmp ebx, 0xd
jbe 0x4b9e85
jmp 0x4b9f1a
shl esi, 0xc
add edi, 3
or ecx, esi
mov ebx, ecx
cmp ebx, 0xd
jbe 0x4b9e85
mov eax, ebx
cmp eax, 0x110000
je 0x4b9e9e
cmp eax, 0x5c
je 0x4b9f31
cmp eax, 0x2f
jne 0x4b9f42
inc dword [esp + 0x14]
mov dword [esp + 0x10], edi
cmp edi, dword [esp]
jne 0x4b9ea7
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 0x4ba409
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x4ba3e9
cmp eax, dword [esi + 0x18]
jae 0x4ba3e3
cmp byte [ecx + eax], 0xbf
jg 0x4ba3e9
jmp 0x4b93d0
mov eax, dword [esp + 0x98]
mov ebx, ebp
mov byte [esp + 0xc3], 0
mov dword [esp + 0x18], eax
mov eax, 0x2600
jmp 0x4b9fb3
mov edx, ecx
cmp edx, 0x110000
jne 0x4ba04b
cmp ebx, dword [esp]
je 0x4ba0a6
movzx ecx, byte [ebx]
test cl, cl
js 0x4b9fc6
inc ebx
jmp 0x4ba02f
movzx edi, byte [ebx + 1]
mov edx, ecx
and edx, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x4ba011
movzx esi, byte [ebx + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp cl, 0xf0
jb 0x4ba021
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 0x4ba0a6
add ebx, 4
jmp 0x4ba02f
shl edx, 6
add ebx, 2
or edx, edi
mov edi, dword [esp + 4]
mov ecx, edx
jmp 0x4ba02f
mov edi, dword [esp + 4]
shl edx, 0xc
add ebx, 3
or esi, edx
mov ecx, esi
cmp ecx, 0xd
ja 0x4b9fa5
mov edx, 0x110000
bt eax, ecx
jb 0x4b9fa7
jmp 0x4b9fa5
cmp edx, 0x2f
jne 0x4ba0a6
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 0x90]
jne 0x4ba069
lea ecx, [esp + 0x90]
call fcn.00403e80
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.004bc020
add esp, 0x10
jmp 0x4ba2cb
mov eax, dword [esp]
cmp ebp, eax
je 0x4ba2c0
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 0x4ba0d0
lea ebp, [edi + 1]
mov ebx, eax
jmp 0x4ba120
movzx esi, byte [edi + 1]
mov ebx, eax
and ebx, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x4ba109
movzx edx, byte [edi + 2]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp al, 0xf0
jb 0x4ba113
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 0x4ba11b
shl ebx, 6
lea ebp, [edi + 2]
or ebx, esi
jmp 0x4ba120
shl ebx, 0xc
lea ebp, [edi + 3]
or ebx, edx
mov edx, 0x2600
cmp ebx, 0xd
ja 0x4ba138
bt edx, ebx
jae 0x4ba138
cmp ebp, dword [esp]
mov edi, ebp
mov eax, ebp
jne 0x4ba0c2
jmp 0x4ba2c0
mov esi, 1
cmp ebx, 0x80
jb 0x4ba160
mov esi, 2
cmp ebx, 0x800
jb 0x4ba160
cmp ebx, 0x10000
mov esi, 4
sbb esi, 0
mov eax, dword [esp]
sub eax, edi
cmp esi, eax
jae 0x4ba174
cmp byte [edi + esi], 0xbf
jg 0x4ba17a
jmp 0x4b93d0
jne 0x4b93d0
cmp ebx, 0x23
je 0x4ba184
cmp ebx, 0x3f
jne 0x4ba194
cmp byte [esp + 0xb0], 0
mov eax, ecx
je 0x4ba2c0
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
push dword [esp]
push ebp
push ebx
call fcn.004bfb20
add esp, 0xc
mov edx, dword [esp + 8]
jmp 0x4ba203
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 0x4ba28c
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 0x4ba2ac
movzx eax, byte [edi]
test al, al
js 0x4ba1b5
mov ecx, eax
shr ecx, 5
mov ecx, dword [ecx*4 + 0x61ecc4]
bt ecx, eax
jb 0x4ba1b5
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 0x4ba281
movsx ecx, byte [edi + edx]
mov eax, edx
test ecx, ecx
js 0x4ba264
mov edx, ecx
mov edi, esi
shr edx, 5
mov esi, dword [edx*4 + 0x61ecc4]
lea edx, [eax + 1]
bt esi, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
jae 0x4ba238
mov edx, dword [esp + 8]
lea ecx, [eax - 1]
cmp ecx, esi
jae 0x4b93d0
lea ecx, [edi + eax]
mov esi, eax
mov dword [esp + 0x10], ecx
jmp 0x4ba1c9
mov edx, dword [esp + 8]
xor ebx, ebx
jmp 0x4ba1c9
lea ecx, [esp + 0x90]
push 1
push 1
push esi
call fcn.004df9e0
add esp, 0xc
mov edx, dword [esp + 0x98]
jmp 0x4ba1da
cmp ebp, dword [esp]
mov dword [esp + 8], edx
mov eax, ebp
mov edx, 0x2600
jne 0x4ba0be
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.004bd0b0
add esp, 0x2c
jmp 0x4b9b38
jne 0x4b93d0
cmp esi, 4
jne 0x4ba388
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.004bd420
add esp, 0xc
jmp 0x4b9b38
jne 0x4b93d0
cmp edi, 0xffffffff
je 0x4b93d0
cmp eax, edi
jne 0x4ba409
push edi
push edx
push ecx
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4ba5a4
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4ba54c
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 0x4ba50b
movzx ebx, byte [ebp]
test bl, bl
js 0x4ba46a
inc ebp
cmp ebx, 0x2e
jg 0x4ba4c1
cmp ebx, 0xd
ja 0x4ba50b
bt edi, ebx
jb 0x4ba440
jmp 0x4ba50b
movzx edx, byte [ebp + 1]
mov eax, ebx
and eax, 0x1f
and edx, 0x3f
cmp bl, 0xdf
jbe 0x4ba4b2
movzx ecx, byte [ebp + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bl, 0xf0
jb 0x4ba4f6
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 0x4ba50b
add ebp, 4
cmp ebx, 0x2e
jle 0x4ba457
jmp 0x4ba4c1
shl eax, 6
add ebp, 2
or eax, edx
mov ebx, eax
cmp ebx, 0x2e
jle 0x4ba457
cmp ebx, 0x2f
je 0x4ba4d7
cmp ebx, 0x110000
je 0x4ba440
cmp ebx, 0x5c
jne 0x4ba50b
lea ecx, [esp + 0x1c]
mov edx, ebx
call fcn.004b8c20
cmp ebx, 0x2f
je 0x4ba440
cmp ebx, 0x5c
je 0x4ba440
jmp 0x4ba50b
shl eax, 0xc
add ebp, 3
or ecx, eax
mov ebx, ecx
cmp ebx, 0x2e
jle 0x4ba457
jmp 0x4ba4c1
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x24], 2
mov bl, 1
jne 0x4ba524
cmp word [eax], 0x2f2f
setne bl
mov edi, dword [esp + 4]
test ecx, ecx
je 0x4ba53b
push eax
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
test bl, bl
je 0x4ba54c
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.004ba8b0
add esp, 0x10
jmp 0x4b9b38
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 0x4b9c2a