Function at 0x4f0bf0
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b25cc
mov eax, dword fs:[0]
push eax
sub esp, 0x254
mov eax, dword [0x5fa040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x110], edi
mov dword [ebp - 0x70], 0
lea ecx, [ebp - 0x260]
mov dword [ebp - 4], 0
call fcn.004eabb0
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x160], 0
mov byte [ebp - 0x15c], 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 2
call fcn.004ed270
mov byte [ebp - 4], 3
test edi, edi
je 0x4f0c9f
mov eax, dword [edi]
lea ecx, [ebp - 0x70]
push ecx
push 0x5c1e24
push edi
call dword [eax]
mov eax, dword [edi]
lea ecx, [ebp - 0x24]
push ecx
push 0x5c1f94
push edi
call dword [eax]
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x144], 0
or eax, 0xffffffff
xorps xmm0, xmm0
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x6c], eax
xor al, al
movlpd qword [ebp - 0x60], xmm0
mov byte [ebp - 0x41], al
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x60]
movlpd qword [ebp - 0x11c], xmm0
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x48], 0
mov byte [ebp - 4], 5
mov eax, dword [esi + 0x34]
test eax, eax
jne 0x4f0d29
mov edi, dword [ebp - 0x90]
test edi, edi
je 0x4f0d1f
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x4f0d1f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, edi
mov dword [ebp - 0x48], ecx
jmp 0x4f0e4f
cmp dword [ebp - 0x70], 0
je 0x4f1dd5
cmp eax, 1
jne 0x4f0def
push 8
call fcn.0058813f
xor ecx, ecx
mov dword [ebp - 0x128], eax
add esp, 4
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 3
mov word [eax], cx
xor eax, eax
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x170], eax
mov byte [ebp - 4], 8
lea edx, [ebp - 0x178]
mov eax, dword [ebp - 0x70]
push edx
push 4
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov edi, eax
test edi, edi
jne 0x4f1cb8
cmp word [ebp - 0x178], 8
jne 0x4f1c99
push dword [ebp - 0x170]
lea ecx, [ebp - 0x128]
call fcn.0046d0a0
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 7
call fcn.004719d0
push 1
lea eax, [ebp - 0x128]
push eax
lea ecx, [ebp - 0x260]
call fcn.004eac60
test al, al
je 0x4f1c71
mov byte [ebp - 4], 5
push dword [ebp - 0x128]
call fcn.00588148
add esp, 4
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp - 0x260]
call fcn.004eb010
mov byte [ebp - 4], 0xe
lea edx, [ebp - 0x48]
mov eax, dword [ebp - 0x70]
push edx
push dword [ebp - 0x184]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
mov edi, eax
test edi, edi
je 0x4f0e27
cmp edi, 1
jne 0x4f1ceb
cmp dword [ebp - 0x48], 0
je 0x4f1da5
test edi, edi
jne 0x4f1da5
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x184]
push eax
call fcn.00588148
mov ecx, dword [ebp - 0x48]
add esp, 4
lea eax, [ebp - 0x68]
xorps xmm0, xmm0
push eax
lea edx, [ebp - 0x138]
movlpd qword [ebp - 0x68], xmm0
call fcn.00558e40
mov edi, eax
add esp, 4
test edi, edi
jne 0x4f1cd1
mov ecx, dword [ebp - 0x110]
test ecx, ecx
je 0x4f0ea7
mov eax, dword [ebp - 0x68]
lea edx, [ebp - 0x11c]
add dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x64]
adc dword [ebp - 0x118], eax
mov eax, dword [ecx]
push edx
push edi
push ecx
call dword [eax + 0xc]
mov edi, eax
test edi, edi
jne 0x4f1cd1
lea ecx, [ebp - 0x214]
call fcn.004eb150
lea eax, [ebp - 0x214]
mov byte [ebp - 4], 0x19
push eax
push dword [ebp - 0x24]
lea ecx, [ebp - 0x158]
push dword [ebp + 0xc]
push dword [ebp - 0x48]
call fcn.004ecc80
mov edi, eax
mov al, byte [ebp - 0x13e]
test al, al
je 0x4f0eea
cmp byte [ebp - 0x13d], 0
je 0x4f0eea
or dword [esi + 0x48], 0x20
mov ecx, dword [esi + 0x34]
test ecx, ecx
jne 0x4f0ef4
mov byte [esi + 0x10], al
test edi, edi
jne 0x4f1d7a
lea ecx, [esi + 0x30]
call fcn.00439780
push 0x78
call fcn.00587dd8
add esp, 4
mov dword [ebp - 0x94], eax
mov dword [eax], edi
lea edx, [eax + 8]
mov byte [ebp - 4], 0x22
mov ecx, edx
mov dword [ebp - 0x4c], edx
call fcn.004eb150
mov byte [ebp - 4], 0x19
mov ecx, dword [esi + 0x34]
mov edi, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x94]
movups xmm0, xmmword [ebp - 0x1dc]
lea eax, [ecx + 1]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x30]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x214]
mov dword [edi], eax
mov eax, dword [ebp - 0x20c]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x204]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x1fc]
mov dword [edi + 0x18], eax
mov eax, dword [ebp - 0x1f4]
mov dword [edi + 0x20], eax
mov al, byte [ebp - 0x1ec]
mov ecx, dword [ebp - 0x210]
mov byte [edi + 0x28], al
mov al, byte [ebp - 0x1eb]
mov byte [edi + 0x29], al
mov al, byte [ebp - 0x1ea]
mov byte [edi + 0x2a], al
mov al, byte [ebp - 0x1e9]
mov byte [edi + 0x2b], al
mov al, byte [ebp - 0x1e8]
mov byte [edi + 0x2c], al
mov al, byte [ebp - 0x1e7]
mov byte [edi + 0x2d], al
mov al, byte [ebp - 0x1e6]
mov dword [edi + 4], ecx
mov ecx, dword [ebp - 0x208]
mov dword [edi + 0xc], ecx
mov ecx, dword [ebp - 0x200]
mov byte [edi + 0x2e], al
mov al, byte [ebp - 0x1e5]
mov dword [edi + 0x14], ecx
mov ecx, dword [ebp - 0x1f8]
mov byte [edi + 0x2f], al
mov al, byte [ebp - 0x1e4]
mov dword [edi + 0x1c], ecx
mov ecx, dword [ebp - 0x1f0]
movups xmmword [edi + 0x38], xmm0
mov byte [edi + 0x30], al
movq xmm0, qword [ebp - 0x1cc]
mov eax, dword [ebp - 0x1c4]
mov dword [edi + 0x24], ecx
mov ecx, dword [ebp - 0x1c0]
movq qword [edi + 0x48], xmm0
mov dword [edi + 0x50], eax
mov eax, dword [ebp - 0x1bc]
mov dword [edi + 0x54], ecx
mov ecx, dword [ebp - 0x1b8]
mov dword [edi + 0x58], eax
lea eax, [ebp - 0x1b4]
mov dword [edi + 0x5c], ecx
lea ecx, [edi + 0x60]
push eax
call fcn.0046cb10
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x54], ecx
test ecx, ecx
je 0x4f1048
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax]
test ecx, ecx
je 0x4f105a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x54]
push 4
mov dword [edx], eax
mov dword [ebp - 0xfc], 0
call fcn.0058813f
mov dword [ebp - 0xfc], eax
xorps xmm0, xmm0
mov dword [ebp - 0xf4], 3
add esp, 4
mov byte [eax], 0
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0xffffffff
mov byte [ebp - 0x103], 0
movlpd qword [ebp - 0xac], xmm0
mov dword [ebp - 0xf8], 0
mov byte [eax], 0
mov eax, dword [ebp - 0xd8]
test eax, eax
je 0x4f10f6
push eax
call fcn.00588148
add esp, 4
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0x100], 0xffffffff
mov byte [ebp - 4], 0x23
nop
mov eax, dword [ebp - 0xfc]
xorps xmm0, xmm0
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0xffffffff
mov byte [ebp - 0x103], 0
movlpd qword [ebp - 0xac], xmm0
mov dword [ebp - 0xf8], 0
mov byte [eax], 0
mov eax, dword [ebp - 0xd8]
test eax, eax
je 0x4f1166
push eax
call fcn.00588148
add esp, 4
mov dword [ebp - 0xd8], 0
mov ecx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0x100], 0xffffffff
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], ecx
mov ecx, dword [ebp - 0x12c]
cmp ecx, dword [ebp - 0x64]
ja 0x4f1be6
mov eax, dword [ebp - 0x130]
jb 0x4f11ac
cmp eax, dword [ebp - 0x68]
ja 0x4f1be6
push ecx
mov ecx, dword [ebp - 0x48]
push eax
call fcn.00430da0
mov edi, eax
add esp, 8
test edi, edi
jne 0x4f1cff
lea eax, [ebp - 0x238]
push eax
lea ecx, [ebp - 0x158]
call fcn.004ec4b0
mov edi, eax
test edi, edi
jne 0x4f1b72
mov eax, dword [ebp - 0x238]
mov ecx, dword [ebp - 0x234]
cmp eax, 5
jne 0x4f11f8
test ecx, ecx
je 0x4f1a62
cmp eax, 2
jne 0x4f1201
test ecx, ecx
je 0x4f1212
cmp eax, 3
jne 0x4f1b66
test ecx, ecx
jne 0x4f1b66
mov byte [ebp - 0x104], al
lea ecx, [ebp - 0x158]
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x238]
push eax
call fcn.004ecfa0
test al, al
je 0x4f1b5a
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x130]
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xb0], eax
mov dword [edx + 0x18], ecx
mov dword [edx + 0x1c], eax
mov edi, dword [ebp - 0xc4]
mov ecx, edi
add ecx, dword [ebp - 0x130]
mov edx, dword [ebp - 0xc0]
adc edx, dword [ebp - 0x12c]
mov byte [ebp - 0x4d], 1
cmp edx, dword [ebp - 0x12c]
ja 0x4f12af
jb 0x4f128a
cmp ecx, dword [ebp - 0x130]
jae 0x4f12af
mov edx, dword [ebp - 0x4c]
or dword [esi + 0x48], 2
mov ecx, dword [ebp - 0x64]
mov byte [ebp - 0x4d], 0
cmp dword [edx + 0x1c], ecx
ja 0x4f12ca
mov eax, dword [ebp - 0x68]
jb 0x4f12a7
cmp dword [edx + 0x18], eax
jae 0x4f12ca
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], ecx
jmp 0x4f12c4
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x12c], edx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edx
mov edi, dword [ebp - 0xc4]
cmp byte [esi + 0x13], 0
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0xdc]
mov byte [ebp - 0x41], 1
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x78], edx
jne 0x4f1400
cmp dword [esi + 0x7c], 0
jne 0x4f1400
cmp byte [ebp - 0x104], 3
jne 0x4f13ec
mov ecx, 0x5cfd14
mov eax, edx
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
mov byte [ebp - 0x42], dl
mov edx, dword [ebp - 0x78]
jne 0x4f1350
cmp byte [ebp - 0x42], 0
je 0x4f134c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
mov byte [ebp - 0x42], dl
mov edx, dword [ebp - 0x78]
jne 0x4f1350
add eax, 2
add ecx, 2
cmp byte [ebp - 0x42], 0
jne 0x4f1320
xor eax, eax
jmp 0x4f1355
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4f13ec
mov ecx, dword [ebp - 0xc0]
mov byte [esi + 0x13], 1
test ecx, ecx
ja 0x4f1400
jb 0x4f137d
cmp edi, 0x40000
ja 0x4f1400
cmp edi, dword [ebp - 0x7c]
jne 0x4f1400
cmp ecx, dword [ebp - 0x74]
jne 0x4f1400
mov eax, edi
or eax, ecx
je 0x4f1400
test dword [ebp - 0x80], 0x380
jne 0x4f1400
test byte [ebp - 0x10c], 0x18
jne 0x4f1400
lea eax, [esi + 0x78]
push eax
push dword [ebp - 0x48]
lea eax, [ebp - 0x10c]
push ecx
push edi
push eax
lea ecx, [ebp - 0x40]
call fcn.004eda30
mov edi, eax
test edi, edi
jne 0x4f1cff
mov byte [ebp - 0x41], al
mov eax, dword [esi + 0x28]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], 0xffffffff
mov dword [ebp - 0x98], 0xffffffff
jmp 0x4f17af
mov ecx, dword [esi + 0x28]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0xa0], ecx
jmp 0x4f1412
mov eax, dword [esi + 0x28]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], eax
cmp byte [ebp - 0x104], 3
mov dword [ebp - 0x98], 0xffffffff
mov dword [ebp - 0x9c], 0xffffffff
jne 0x4f1480
mov ecx, 0x5cfd10
mov eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
mov byte [ebp - 0x42], dl
mov edx, dword [ebp - 0x78]
jne 0x4f1466
cmp byte [ebp - 0x42], 0
je 0x4f1462
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
mov byte [ebp - 0x42], dl
mov edx, dword [ebp - 0x78]
jne 0x4f1466
add eax, 2
add ecx, 2
cmp byte [ebp - 0x42], 0
jne 0x4f1436
xor eax, eax
jmp 0x4f146b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4f151b
mov eax, dword [ebp - 0x6c]
test eax, eax
js 0x4f1480
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x74], eax
shr eax, 3
test al, 1
je 0x4f178d
mov ecx, dword [ebp - 0x114]
test ecx, ecx
js 0x4f1789
mov eax, ecx
shl eax, 4
add eax, dword [esi + 0x18]
test byte [ebp - 0x108], 1
mov dword [ebp - 0x80], eax
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x24]
mov edi, dword [eax + ecx*4]
jne 0x4f178d
test byte [edi + 4], 1
jne 0x4f178d
mov eax, dword [edi]
shr eax, 4
test al, 1
je 0x4f178d
mov eax, dword [ebp - 0xf8]
cmp eax, dword [edi + 0x14]
jne 0x4f178d
mov eax, dword [edi + 0x10]
nop dword [eax]
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x4f176e
test cl, cl
je 0x4f1514
mov cl, byte [edx + 1]
cmp cl, byte [eax + 1]
jne 0x4f176e
add edx, 2
add eax, 2
test cl, cl
jne 0x4f14f0
xor eax, eax
jmp 0x4f1773
mov byte [ebp - 0x41], 0
mov eax, 0x5cfd18
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x4f1544
test cl, cl
je 0x4f1540
mov cl, byte [edx + 1]
cmp cl, byte [eax + 1]
jne 0x4f1544
add edx, 2
add eax, 2
test cl, cl
jne 0x4f1524
xor eax, eax
jmp 0x4f1549
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4f17af
lea eax, [ebp - 0x54]
mov byte [esi + 0x14], 1
push eax
push 1
lea ecx, [ebp - 0x10c]
call fcn.004eb590
test eax, eax
js 0x4f1573
cmp byte [ebp - 0x140], 0
je 0x4f159d
mov eax, dword [ebp - 0x80]
shr eax, 6
test al, 1
jne 0x4f159d
cmp dword [ebp - 0x6c], 0
jl 0x4f159d
mov edx, dword [ebp - 0x74]
test edx, edx
ja 0x4f159d
mov ecx, dword [ebp - 0x7c]
jb 0x4f1597
cmp ecx, 0x1000000
jae 0x4f159d
mov eax, ecx
or eax, edx
jne 0x4f15b5
mov al, 1
mov byte [esi + 0x15], al
mov eax, dword [ebp - 0x6c]
test eax, eax
js 0x4f17af
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x74]
jmp 0x4f15b8
mov eax, dword [ebp - 0x6c]
test edx, edx
ja 0x4f17af
jb 0x4f15ce
cmp ecx, 0x1000000
jae 0x4f17af
or ecx, edx
je 0x4f17af
mov ecx, eax
mov eax, dword [esi + 0x18]
add ecx, ecx
mov ecx, dword [eax + ecx*8]
mov eax, dword [esi + 0x24]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x54], eax
cmp dword [eax + 0xc], 0
jge 0x4f17af
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0x33
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x48]
lea eax, [ebp - 0x10c]
push eax
lea ecx, [ebp - 0x168]
call fcn.004edc10
mov edi, eax
mov eax, dword [ebp - 0x10c]
shr eax, 4
test al, 1
jne 0x4f1642
mov dword [ebp - 0x160], 0
mov byte [ebp - 0x15c], 1
test edi, edi
je 0x4f1680
mov dword [ebp - 0x160], 0
mov byte [ebp - 0x15c], 1
cmp edi, 1
je 0x4f1668
cmp edi, 0x80004001
jne 0x4f1cf4
mov byte [ebp - 4], 0x23
push dword [ebp - 0x60]
mov byte [esi + 0x15], 1
call fcn.00588148
add esp, 4
jmp 0x4f17af
mov edi, dword [ebp - 0x5c]
test edi, edi
je 0x4f175d
cmp dword [esi + 0x40], 0
je 0x4f16fd
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x3c]
mov edx, dword [eax + ecx*4 - 4]
cmp edi, dword [edx + 4]
jne 0x4f16fd
mov ecx, dword [ebp - 0x60]
mov edx, dword [edx]
sub edi, 4
jb 0x4f16c1
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f16c6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x4f16b0
cmp edi, 0xfffffffc
je 0x4f16f7
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f16f3
cmp edi, 0xfffffffd
je 0x4f16f7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f16f3
cmp edi, 0xfffffffe
je 0x4f16f7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f16f3
cmp edi, 0xffffffff
je 0x4f16f7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4f16f7
mov al, 1
jmp 0x4f16f9
xor al, al
test al, al
je 0x4f1753
lea ecx, [esi + 0x3c]
call fcn.00439780
push 8
call fcn.00587dd8
mov edi, eax
mov dword [ebp - 0x218], edi
mov byte [ebp - 4], 0x37
push dword [ebp - 0x5c]
mov dword [edi], 0
mov dword [edi + 4], 0
call fcn.0058813f
push dword [ebp - 0x5c]
mov dword [edi], eax
push dword [ebp - 0x60]
push eax
call fcn.0058aed0
mov eax, dword [ebp - 0x5c]
add esp, 0x14
mov dword [edi + 4], eax
mov ecx, dword [esi + 0x40]
lea eax, [ecx + 1]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x3c]
mov dword [eax + ecx*4], edi
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x54]
dec eax
mov dword [ecx + 0xc], eax
mov byte [ebp - 4], 0x23
push dword [ebp - 0x60]
call fcn.00588148
add esp, 4
jmp 0x4f17af
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4f178d
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x54]
mov byte [ebp - 0x41], 0
mov dword [eax + 4], ecx
mov dword [edi + 0x20], ecx
jmp 0x4f17af
mov byte [esi + 0x16], 1
mov eax, dword [ebp - 0x74]
shr eax, 4
test al, 1
je 0x4f17a0
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x114], eax
cmp byte [ebp - 0x104], 3
je 0x4f17af
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x18c]
push eax
lea ecx, [ebp - 0x10c]
call fcn.004ebb90
test al, al
je 0x4f17e4
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x188]
mov byte [ebp - 0x103], 1
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], ecx
mov eax, dword [esi + 0x34]
lea ecx, [esi + 0x24]
dec eax
mov dword [ebp - 0xf0], eax
call fcn.00439780
push 0x68
call fcn.00587dd8
mov edx, eax
mov dword [ebp - 0x84], edx
mov byte [ebp - 4], 0x38
mov ecx, dword [ebp - 0x10c]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x108]
mov dword [edx + 4], ecx
mov cl, byte [ebp - 0x104]
mov byte [edx + 8], cl
mov al, byte [ebp - 0x103]
mov byte [edx + 9], al
mov eax, dword [ebp - 0x100]
mov dword [edx + 0xc], eax
mov edi, dword [ebp - 0xf8]
mov dword [edx + 0x10], 0
lea eax, [edi + 1]
push eax
call fcn.0058813f
mov edx, dword [ebp - 0x84]
add esp, 8
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], edi
mov dword [edx + 0x18], edi
mov edi, dword [ebp - 0xfc]
mov cl, byte [edi]
lea edi, [edi + 1]
mov byte [eax], cl
lea eax, [eax + 1]
test cl, cl
jne 0x4f1863
mov byte [ebp - 4], 0x39
mov eax, dword [ebp - 0xf0]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 0xec]
mov dword [edx + 0x20], eax
mov eax, dword [ebp - 0xe8]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 0xe4]
mov dword [edx + 0x28], eax
mov eax, dword [ebp - 0xe0]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0xdc]
mov dword [edx + 0x30], eax
mov dword [edx + 0x34], 0
mov dword [edx + 0x38], 0
mov edi, dword [ebp - 0xd4]
test edi, edi
je 0x4f18eb
push edi
call fcn.0058813f
mov edx, dword [ebp - 0x84]
push edi
mov dword [edx + 0x34], eax
push dword [ebp - 0xd8]
push eax
call fcn.0058aed0
mov edx, dword [ebp - 0x84]
add esp, 0x10
mov dword [edx + 0x38], edi
cmp byte [ebp - 0x41], 0
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xc8]
mov dword [edx + 0x40], eax
mov dword [edx + 0x44], ecx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc0]
mov dword [edx + 0x48], eax
mov dword [edx + 0x4c], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xb8]
mov dword [edx + 0x50], eax
mov dword [edx + 0x54], ecx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb0]
mov dword [edx + 0x58], eax
mov dword [edx + 0x5c], ecx
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xa8]
mov dword [edx + 0x60], eax
mov dword [edx + 0x64], ecx
mov byte [ebp - 4], 0x23
mov ecx, dword [esi + 0x28]
lea eax, [ecx + 1]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x24]
mov dword [eax + ecx*4], edx
je 0x4f19eb
mov ecx, dword [esi + 0x20]
cmp dword [esi + 0x1c], ecx
jne 0x4f19d2
cmp ecx, 0x7fffffff
jae 0x4f1e75
mov eax, ecx
mov edi, SysReAllocString
shr eax, 2
sub edi, ecx
inc eax
cmp eax, edi
cmovbe edi, eax
add edi, ecx
mov ecx, 0x10
mov eax, edi
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0058813f
mov ecx, dword [esi + 0x1c]
add esp, 4
mov dword [ebp - 0x54], eax
test ecx, ecx
je 0x4f19be
shl ecx, 4
push ecx
push dword [esi + 0x18]
push eax
call fcn.0058aed0
add esp, 0xc
push dword [esi + 0x18]
call fcn.00588148
mov eax, dword [ebp - 0x54]
add esp, 4
mov dword [esi + 0x18], eax
mov dword [esi + 0x20], edi
mov ecx, dword [esi + 0x1c]
movups xmm0, xmmword [ebp - 0xa4]
lea eax, [ecx + 1]
shl ecx, 4
add ecx, dword [esi + 0x18]
mov dword [esi + 0x1c], eax
movups xmmword [ecx], xmm0
mov edx, dword [ebp - 0x110]
test edx, edx
je 0x4f1a50
cmp byte [esi + 0x28], 0
jne 0x4f1a50
mov ecx, dword [ebp - 0xb4]
add ecx, dword [ebp - 0x88]
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0xb0]
adc eax, dword [ebp - 0x8c]
mov dword [ebp - 0x194], ecx
lea ecx, [ebp - 0x194]
push ecx
mov dword [ebp - 0x190], eax
lea ecx, [ebp - 0x19c]
mov eax, dword [edx]
push ecx
push edx
mov dword [ebp - 0x198], 0
call dword [eax + 0x10]
mov edi, eax
test edi, edi
jne 0x4f1cff
cmp byte [ebp - 0x4d], 0
mov edi, dword [ebp - 0x4c]
je 0x4f1bea
jmp 0x4f1110
mov edi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x12c]
mov dword [edi + 0x18], eax
lea eax, [edi + 0x20]
mov dword [edi + 0x1c], ecx
mov byte [edi + 0x28], 1
mov edx, dword [ebp - 0x150]
mov ecx, dword [ebp - 0x14c]
sub edx, ecx
add ecx, dword [ebp - 0x158]
push eax
call fcn.004eb3b0
mov ecx, dword [ebp - 0x14c]
add esp, 4
add ecx, eax
mov dword [ebp - 0x14c], ecx
test eax, eax
jne 0x4f1ab1
or dword [esi + 0x48], 2
cmp ecx, dword [ebp - 0x150]
jne 0x4f1ad0
cmp dword [ebp - 0x228], 0
jne 0x4f1ad0
mov eax, dword [ebp - 0x220]
or eax, dword [ebp - 0x21c]
je 0x4f1ad4
mov byte [edi + 0x30], 1
mov eax, dword [edi]
and eax, 1
or eax, 0
je 0x4f1bea
push dword [edi + 0x1c]
mov ecx, dword [ebp - 0x48]
push dword [edi + 0x18]
call fcn.00430da0
mov edi, eax
add esp, 8
test edi, edi
jne 0x4f1cff
mov ecx, dword [ebp - 0x48]
lea edx, [ebp - 0x55]
push eax
lea eax, [ebp - 0x1a4]
push 0x1000
push eax
call fcn.004a5180
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x4f1cff
cmp byte [ebp - 0x55], al
jne 0x4f1b6d
mov ecx, dword [ebp - 0x1a4]
mov eax, ecx
mov edx, dword [ebp - 0x1a0]
or eax, edx
je 0x4f1b6d
test edx, edx
ja 0x4f1b6d
jb 0x4f1b47
cmp ecx, 0x1000
ja 0x4f1b6d
mov edi, dword [ebp - 0x4c]
add dword [edi + 0x18], ecx
mov eax, dword [edi + 0x1c]
adc eax, edx
mov dword [edi + 0x1c], eax
jmp 0x4f1bea
or dword [esi + 0x48], 2
mov edi, dword [ebp - 0x4c]
jmp 0x4f1bea
or dword [esi + 0x48], 0x100
mov edi, dword [ebp - 0x4c]
jmp 0x4f1bea
cmp edi, 1
jne 0x4f1cff
cmp byte [ebp - 0x13d], 0
mov eax, dword [esi + 0x48]
mov edi, dword [ebp - 0x4c]
je 0x4f1bde
mov edx, dword [ebp - 0x12c]
or eax, 0x20
mov dword [esi + 0x48], eax
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x54], edx
cmp ecx, edx
ja 0x4f1bc4
mov edx, dword [ebp - 0x130]
jb 0x4f1baf
cmp eax, edx
jae 0x4f1bc4
mov eax, dword [ebp - 0x54]
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], eax
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x12c]
cmp ecx, dword [ebp - 0x64]
ja 0x4f1bea
jb 0x4f1bd0
cmp eax, dword [ebp - 0x68]
jae 0x4f1bea
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x64]
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], ecx
jmp 0x4f1bea
or eax, 2
mov dword [esi + 0x48], eax
jmp 0x4f1bea
or dword [esi + 0x48], 0x20
mov eax, dword [ebp - 0x88]
add eax, dword [ebp - 0x68]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x8c]
adc eax, dword [ebp - 0x64]
mov dword [ebp - 0x8c], eax
mov eax, dword [edi]
and eax, 1
mov byte [ebp - 0x41], 0
or eax, 0
je 0x4f1d4d
cmp byte [edi + 0x28], 0
je 0x4f1c33
mov eax, dword [edi + 0x20]
and eax, 1
or eax, 0
je 0x4f1d20
mov byte [ebp - 0x41], 1
push dword [ebp - 0xd8]
call fcn.00588148
push dword [ebp - 0xfc]
call fcn.00588148
push dword [ebp - 0x1b4]
call fcn.00588148
add esp, 0xc
mov byte [ebp - 4], 0x3f
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x4f0cf0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4f0cf0
push dword [ebp - 0x128]
call fcn.00588148
add esp, 4
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x4f1dd5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4f1dd5
lea ecx, [ebp - 0x178]
call fcn.004719d0
push dword [ebp - 0x128]
call fcn.00588148
add esp, 4
mov byte [ebp - 4], 0xc
jmp 0x4f1c83
lea ecx, [ebp - 0x178]
call fcn.004719d0
push dword [ebp - 0x128]
call fcn.00588148
add esp, 4
mov byte [ebp - 4], 0x3a
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x4f1de2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4f1de2
mov eax, dword [ebp - 0x184]
push eax
jmp 0x4f1cc9
push dword [ebp - 0x60]
call fcn.00588148
add esp, 4
push dword [ebp - 0xd8]
call fcn.00588148
push dword [ebp - 0xfc]
call fcn.00588148
add esp, 8
push dword [ebp - 0x1b4]
jmp 0x4f1cc9
push dword [ebp - 0xd8]
call fcn.00588148
push dword [ebp - 0xfc]
call fcn.00588148
push dword [ebp - 0x1b4]
call fcn.00588148
add esp, 0xc
mov byte [ebp - 4], 0x3e
jmp 0x4f1c83
push dword [ebp - 0xd8]
call fcn.00588148
push dword [ebp - 0xfc]
call fcn.00588148
push dword [ebp - 0x1b4]
call fcn.00588148
add esp, 0xc
mov byte [ebp - 4], 0x3d
jmp 0x4f1c83
cmp edi, 1
jne 0x4f1d83
test ecx, ecx
jne 0x4f1d8e
push dword [ebp - 0x1b4]
jmp 0x4f1cc9
push dword [ebp - 0x1b4]
call fcn.00588148
add esp, 4
mov byte [ebp - 4], 0x20
jmp 0x4f1c83
cmp byte [ebp - 0x41], 0
je 0x4f1dbd
lea eax, [ebp - 0x184]
push eax
lea ecx, [esi + 0x80]
call fcn.0046d120
mov eax, dword [ebp - 0x184]
push eax
call fcn.00588148
add esp, 4
mov byte [ebp - 4], 0x12
jmp 0x4f1c83
mov ecx, esi
mov byte [ebp - 4], 4
call fcn.004f08a0
xor edi, edi
mov byte [ebp - 4], 0x40
mov ecx, dword [ebp - 0x144]
test ecx, ecx
je 0x4f1df6
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x158]
test eax, eax
je 0x4f1e0b
push dword [eax - 4]
call fcn.0058e23f
add esp, 4
lea ecx, [ebp - 0x40]
call fcn.004f1ec0
push dword [ebp - 0x168]
call fcn.00588148
push dword [ebp - 0x244]
call fcn.00588148
push dword [ebp - 0x250]
call fcn.00588148
push dword [ebp - 0x25c]
call fcn.00588148
add esp, 0x10
mov dword [ebp - 4], 0x41
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x4f1e56
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00587d99
mov esp, ebp
pop ebp
ret 0xc
push 0x5f79a8
lea eax, [ebp - 0x90]
mov dword [ebp - 0x90], 0x7e5
push eax
call fcn.0058acc1
int3