Function at 0x4f82de
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0x58]
sub esp, 0x58
push 0xffffffffffffffff
push 0x73fedb
mov eax, dword fs:[0]
push eax
sub esp, 0x1a4
mov eax, dword [0x8bb040]
xor eax, ebp
mov dword [ebp + 0x54], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp], ebx
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x38], eax
mov dword [ebp + 4], 0
push ecx
lea ecx, [ebp - 0xf4]
mov dword [ebp - 4], 0
call fcn.004c92f0
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 1
mov ecx, dword [ebx]
push eax
call fcn.004e5350
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0x24]
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x4f8129
lea eax, [ebp + 0x34]
mov dword [ebp - 0x14], eax
cmp dword [esi + 0x24], 0xf
lea ebx, [esi + 0x10]
lea eax, [ebx + 0x18]
mov ecx, ebx
mov dword [ebp - 0x1c], eax
jbe 0x4f8059
mov ecx, dword [ebx]
mov eax, dword [ebx + 0x10]
mov edi, 0x8bd808
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], eax
push edi
lea ecx, [ebp - 0x14]
call fcn.004e6060
test al, al
jne 0x4f80da
add edi, 0x48
cmp edi, 0x8bdd18
jne 0x4f8067
mov edx, 0x80e400
lea ecx, [ebp - 0xe4]
call fcn.004853b0
cmp dword [ebx + 0x14], 0xf
mov ecx, dword [ebx + 0x10]
jbe 0x4f809a
mov ebx, dword [ebx]
push ecx
mov edx, ebx
mov ecx, eax
call fcn.0048b260
add esp, 4
mov edx, 0x80e3fc
mov ecx, eax
call fcn.004853b0
mov ecx, eax
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x14], 0xf
mov edx, dword [eax + 0x10]
jbe 0x4f80c3
mov eax, dword [eax]
push edx
mov edx, eax
call fcn.0048b260
add esp, 4
mov edx, 0x80e3d0
mov ecx, eax
call fcn.004853b0
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x4f8104
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x4f8100
lea esp, [esp]
cmp esi, dword [eax + 8]
jne 0x4f8100
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x4f80f0
mov esi, eax
jmp 0x4f811c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x4f811c
mov edi, edi
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x4f8110
cmp byte [esi + 0xd], 0
je 0x4f8046
mov ebx, dword [ebp]
mov edi, dword [ebx + 0xe0]
mov esi, dword [ebx + 0xdc]
cmp esi, edi
je 0x4f8177
lea esp, [esp]
mov edx, 0x80e3ec
lea ecx, [ebp - 0xe4]
call fcn.004853b0
cmp dword [esi + 0x14], 0xf
mov edx, esi
jbe 0x4f815a
mov edx, dword [esi]
push dword [esi + 0x10]
mov ecx, eax
call fcn.0048b260
add esp, 4
mov dl, 0xa
mov ecx, eax
call fcn.00488cd0
add esi, 0x18
cmp esi, edi
jne 0x4f8140
mov eax, dword [ebx]
mov eax, dword [eax + 0x15c]
mov ecx, dword [eax + 8]
lea eax, [ebp + 0x30]
add ecx, 0x200a0
push eax
call fcn.004e19d0
mov byte [ebp - 4], 3
mov eax, dword [ebp + 0x34]
mov edi, dword [ebp + 0x30]
mov dword [ebp - 0x14], eax
cmp edi, eax
je 0x4f8686
jmp 0x4f81b0
mov edx, str.break
lea ecx, [ebp - 0xe4]
call fcn.004853b0
movzx esi, word [edi]
mov ebx, eax
mov ecx, dword [0x8d6528]
mov edx, esi
cmp ecx, 0x10
ja case.0x4f81d6.0
jmp dword [ecx*4 + 0x4f9300]
cmp ecx, 0xf
je 0x4f81fb
cmp ecx, 0xe
jne 0x4f81ef
cmp edx, 0x100
jb 0x4f81fb
mov ecx, 0xf
mov eax, 0x973834
jmp 0x4f8205
mov ecx, 7
mov eax, 0x97382c
mov byte [eax], 0
mov esi, 1
lea ecx, [ecx]
test edx, esi
setne al
add esi, esi
add al, 0x30
mov byte [ecx + 0x973824], al
sub ecx, 1
jns 0x4f8210
jmp 0x4f838f
movsx eax, si
cmp edx, 0x100
jb 0x4f8236
mov eax, edx
push eax
mov eax, 0x775b28
mov ecx, 0x775b24
cmovb eax, ecx
push eax
sbb eax, eax
add eax, 6
push eax
jmp 0x4f8382
push edx
push str._02d
push 3
jmp 0x4f8382
push edx
push 0x775b24
push 4
jmp 0x4f8382
push edx
push 0x775b34
jmp 0x4f8380
push edx
push 0x775b28
push 6
jmp 0x4f8382
push edx
push 0x775b38
push 7
jmp 0x4f8382
push edx
push 0x775b3c
push 9
jmp 0x4f8382
mov eax, dword [0x8bb098]
mov ecx, 0x775b44
shr eax, 2
test al, 1
mov eax, 0x775b40
push edx
cmove eax, ecx
push eax
push 2
jmp 0x4f8382
mov ecx, dword [0x8bb098]
movzx eax, dl
push eax
shr ecx, 2
mov eax, str._02X._02X
shr edx, 8
test cl, 1
push edx
mov ecx, str._02x._02x
cmove eax, ecx
push eax
push 6
push 0x973824
call fcn.004835e0
add esp, 0x14
jmp 0x4f838f
mov ecx, dword [0x8bb098]
movzx eax, dl
push eax
shr ecx, 2
mov eax, str._03X._02X
shr edx, 8
test cl, 1
push edx
mov ecx, str._03x._02x
cmove eax, ecx
push eax
push 7
push 0x973824
call fcn.004835e0
add esp, 0x14
jmp 0x4f838f
mov eax, dword [0x8bb098]
mov ecx, str._08x
shr eax, 2
test al, 1
mov eax, str._08X
push edx
cmove eax, ecx
push eax
push 9
jmp 0x4f8382
cmp edx, 0x100
jae case.0x4f81d6.5
mov eax, dword [0x8bb098]
mov ecx, str._02x
shr eax, 2
test al, 1
mov eax, str._02X
push edx
cmove eax, ecx
push eax
push 3
jmp 0x4f8382
mov eax, dword [0x8bb098]
mov ecx, str._04x
shr eax, 2
test al, 1
mov eax, str._04X
push edx
cmove eax, ecx
push eax
push 5
push 0x973824
call fcn.004835e0
add esp, 0x10
xor eax, eax
mov ecx, 0x973824
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], eax
lea edx, [ecx + 1]
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], eax
jmp 0x4f83b0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4f83b0
sub ecx, edx
push ecx
push 0x973824
lea ecx, [ebp + 0x3c]
call fcn.004815d0
or dword [ebp + 4], 0x100
mov byte [ebp - 4], 4
lea edx, [ebp + 0x3c]
cmp dword [ebp + 0x50], 0xf
mov ecx, ebx
push dword [ebp + 0x4c]
cmova edx, dword [ebp + 0x3c]
call fcn.0048b260
add esp, 4
mov edx, 0x806b84
mov ecx, eax
call fcn.004853b0
mov ecx, dword [0x8d6528]
mov ebx, eax
movzx esi, byte [edi + 2]
cmp ecx, 0x10
ja case.0x4f840b.0
jmp dword [ecx*4 + 0x4f9344]
cmp ecx, 0xf
je 0x4f8428
cmp ecx, 0xe
je 0x4f8428
mov ecx, 0xf
mov eax, 0x973834
jmp 0x4f8432
mov ecx, 7
mov eax, 0x97382c
mov byte [eax], 0
mov edx, 1
lea ebx, [ebx]
test esi, edx
setne al
add edx, edx
add al, 0x30
mov byte [ecx + 0x973824], al
sub ecx, 1
jns 0x4f8440
jmp 0x4f8597
push esi
push 0x775b24
push 5
jmp 0x4f858a
push esi
push str._02d
jmp 0x4f8588
push esi
push 0x775b24
push 4
jmp 0x4f858a
push esi
push 0x775b34
push 5
jmp 0x4f858a
push esi
push 0x775b28
push 6
jmp 0x4f858a
push esi
push 0x775b38
push 7
jmp 0x4f858a
push esi
push 0x775b3c
push 9
jmp 0x4f858a
mov eax, dword [0x8bb098]
mov ecx, 0x775b44
shr eax, 2
test al, 1
mov eax, 0x775b40
push esi
cmove eax, ecx
push eax
push 2
jmp 0x4f858a
mov ecx, dword [0x8bb098]
mov eax, str._02X._02X
push esi
shr ecx, 2
shr esi, 8
test cl, 1
mov ecx, str._02x._02x
push esi
cmove eax, ecx
push eax
push 6
push 0x973824
call fcn.004835e0
add esp, 0x14
jmp 0x4f8597
mov ecx, dword [0x8bb098]
mov eax, str._03X._02X
push esi
shr ecx, 2
shr esi, 8
test cl, 1
mov ecx, str._03x._02x
push esi
cmove eax, ecx
push eax
push 7
push 0x973824
call fcn.004835e0
add esp, 0x14
jmp 0x4f8597
mov eax, dword [0x8bb098]
mov ecx, str._04x
shr eax, 2
test al, 1
mov eax, str._04X
push esi
cmove eax, ecx
push eax
push 5
jmp 0x4f858a
mov eax, dword [0x8bb098]
mov ecx, str._08x
shr eax, 2
test al, 1
mov eax, str._08X
push esi
cmove eax, ecx
push eax
push 9
jmp 0x4f858a
mov eax, dword [0x8bb098]
mov ecx, str._02x
shr eax, 2
test al, 1
mov eax, str._02X
push esi
cmove eax, ecx
push eax
push 3
push 0x973824
call fcn.004835e0
add esp, 0x10
xor eax, eax
mov ecx, 0x973824
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x18], eax
lea edx, [ecx + 1]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4f85b3
sub ecx, edx
push ecx
push 0x973824
lea ecx, [ebp + 0xc]
call fcn.004815d0
or dword [ebp + 4], 0x200
mov byte [ebp - 4], 5
lea edx, [ebp + 0xc]
cmp dword [ebp + 0x20], 0xf
mov ecx, ebx
push dword [ebp + 0x1c]
cmova edx, dword [ebp + 0xc]
call fcn.0048b260
add esp, 4
mov dl, 0xa
mov ecx, eax
call fcn.00488cd0
mov byte [ebp - 4], 4
mov ecx, dword [ebp + 0x20]
cmp ecx, 0xf
jbe 0x4f862e
mov edx, dword [ebp + 0xc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4f8624
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4f86b7
push ecx
push edx
call fcn.00732c0f
add esp, 8
mov byte [ebp - 4], 3
mov ecx, dword [ebp + 0x50]
mov dword [ebp + 0x1c], 0
mov dword [ebp + 0x20], 0xf
mov byte [ebp + 0xc], 0
cmp ecx, 0xf
jbe 0x4f8674
mov edx, dword [ebp + 0x3c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4f866a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4f86b7
push ecx
push edx
call fcn.00732c0f
add esp, 8
add edi, 4
cmp edi, dword [ebp - 0x14]
jne 0x4f81b0
mov edi, dword [ebp + 0x30]
mov ebx, dword [ebp]
mov byte [ebp - 4], 2
test edi, edi
je 0x4f86c7
mov eax, dword [ebp + 0x38]
sub eax, edi
sar eax, 2
lea ecx, [eax*4]
mov eax, edi
cmp ecx, 0x1000
jb 0x4f86bd
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4f86bd
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edi
call fcn.00732c0f
add esp, 8
mov eax, dword [ebx]
lea ecx, [ebp - 0x34]
mov eax, dword [eax + 0x15c]
mov eax, dword [eax + 8]
add eax, 0x200d0
push eax
call fcn.0050a5f0
mov byte [ebp - 4], 6
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x34]
cmp esi, edi
je 0x4f872a
mov edi, edi
mov edx, str.breakIf_
lea ecx, [ebp - 0xe4]
call fcn.004853b0
cmp dword [esi + 0x14], 0xf
mov edx, esi
jbe 0x4f870a
mov edx, dword [esi]
push dword [esi + 0x10]
mov ecx, eax
call fcn.0048b260
add esp, 4
mov edx, 0x80e3d0
mov ecx, eax
call fcn.004853b0
add esi, 0x18
cmp esi, edi
jne 0x4f86f0
mov eax, dword [ebx]
mov eax, dword [eax + 0x15c]
mov ecx, dword [eax + 8]
lea eax, [ebp - 0x34]
add ecx, 0x200e8
cmp eax, ecx
je 0x4f8764
mov esi, dword [ecx]
mov eax, 0x2aaaaaab
mov ecx, dword [ecx + 4]
sub ecx, esi
imul ecx
lea ecx, [ebp - 0x34]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
call fcn.0050a8b0
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x34]
cmp esi, edi
je 0x4f87aa
mov edi, edi
mov edx, str.saveStateIf_
lea ecx, [ebp - 0xe4]
call fcn.004853b0
cmp dword [esi + 0x14], 0xf
mov edx, esi
jbe 0x4f878a
mov edx, dword [esi]
push dword [esi + 0x10]
mov ecx, eax
call fcn.0048b260
add esp, 4
mov edx, 0x80e3d0
mov ecx, eax
call fcn.004853b0
add esi, 0x18
cmp esi, edi
jne 0x4f8770
mov eax, dword [ebx]
lea ecx, [ebp - 0x44]
mov eax, dword [eax + 0x15c]
mov eax, dword [eax + 8]
add eax, 0x20100
push eax
call fcn.0050a5f0
mov eax, dword [ebp]
xor ebx, ebx
mov byte [ebp - 4], 7
mov dword [ebp - 0x14], ebx
mov ecx, dword [eax + 0xe8]
mov eax, dword [eax + 0xec]
sub eax, ecx
sar eax, 2
test eax, eax
je 0x4f8de6
xor esi, esi
mov dword [ebp - 0x1c], esi
lea ecx, [ecx]
mov eax, dword [ecx + ebx*4]
lea edi, [ebx*4]
mov cl, byte [eax]
mov dl, byte [eax + 1]
mov eax, dword [ebp - 0x44]
mov esi, dword [esi + eax + 0x10]
test cl, cl
je 0x4f8822
lea ecx, [ebp - 0xe4]
test dl, dl
je 0x4f881b
mov edx, str.trap
jmp 0x4f8831
mov edx, str.trapRead
jmp 0x4f8831
test dl, dl
je 0x4f8836
mov edx, str.trapWrite
lea ecx, [ebp - 0xe4]
call fcn.004853b0
test esi, esi
je 0x4f8872
mov edx, str.if_
lea ecx, [ebp - 0xe4]
call fcn.004853b0
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x44]
cmp dword [edx + 0x14], 0xf
mov ecx, dword [edx + 0x10]
jbe 0x4f885b
mov edx, dword [edx]
push ecx
mov ecx, eax
call fcn.0048b260
add esp, 4
mov edx, 0x80c5b0
mov ecx, eax
call fcn.004853b0
mov edx, 0x806b84
lea ecx, [ebp - 0xe4]
call fcn.004853b0
mov ecx, dword [ebp]
mov ebx, eax
mov ecx, dword [ecx + 0xe8]
mov ecx, dword [ecx + edi]
mov edx, dword [ecx + 4]
mov ecx, dword [0x8d6528]
cmp ecx, 0x10
ja case.0x4f88a2.0
jmp dword [ecx*4 + 0x4f9388]
cmp ecx, 0xf
je 0x4f88c7
cmp ecx, 0xe
jne 0x4f88bb
cmp edx, 0x100
jl 0x4f88c7
mov ecx, 0xf
mov eax, 0x973834
jmp 0x4f88d1
mov ecx, 7
mov eax, 0x97382c
mov byte [eax], 0
mov esi, 1
lea esp, [esp]
test edx, esi
setne al
add esi, esi
add al, 0x30
mov byte [ecx + 0x973824], al
sub ecx, 1
jns 0x4f88e0
jmp 0x4f8a84
lea eax, [edx + 0xff]
cmp eax, 0x1fe
ja 0x4f891b
movsx edx, dx
mov ecx, 0x775b24
push edx
mov eax, 5
push ecx
push eax
jmp 0x4f8a77
push edx
mov ecx, 0x775b28
mov eax, 6
push ecx
push eax
jmp 0x4f8a77
push edx
push str._02d
push 3
jmp 0x4f8a77
push edx
push 0x775b24
push 4
jmp 0x4f8a77
push edx
push 0x775b34
push 5
jmp 0x4f8a77
push edx
push 0x775b28
push 6
jmp 0x4f8a77
push edx
push 0x775b38
push 7
jmp 0x4f8a77
push edx
push 0x775b3c
jmp 0x4f8a75
mov eax, dword [0x8bb098]
mov ecx, 0x775b44
shr eax, 2
test al, 1
mov eax, 0x775b40
push edx
cmove eax, ecx
push eax
push 2
jmp 0x4f8a77
mov ecx, dword [0x8bb098]
movzx eax, dl
push eax
shr ecx, 2
mov eax, str._02X._02X
sar edx, 8
test cl, 1
push edx
mov ecx, str._02x._02x
cmove eax, ecx
push eax
push 6
push 0x973824
call fcn.004835e0
add esp, 0x14
jmp 0x4f8a84
mov ecx, dword [0x8bb098]
movzx eax, dl
push eax
shr ecx, 2
mov eax, str._03X._02X
sar edx, 8
test cl, 1
push edx
mov ecx, str._03x._02x
cmove eax, ecx
push eax
push 7
push 0x973824
call fcn.004835e0
add esp, 0x14
jmp 0x4f8a84
cmp edx, 0x100
jge 0x4f8a37
mov eax, dword [0x8bb098]
mov esi, str._02x
shr eax, 2
test al, 1
mov eax, str._02X
push edx
cmove eax, esi
push eax
push 3
push 0x973824
call fcn.004835e0
add esp, 0x10
jmp 0x4f8a89
cmp edx, 0x10000
jge case.0x4f88a2.6
mov eax, dword [0x8bb098]
mov ecx, str._04x
shr eax, 2
test al, 1
mov eax, str._04X
push edx
cmove eax, ecx
push eax
push 5
jmp 0x4f8a77
mov eax, dword [0x8bb098]
mov ecx, str._08x
shr eax, 2
test al, 1
mov eax, str._08X
push edx
cmove eax, ecx
push eax
push 9
push 0x973824
call fcn.004835e0
add esp, 0x10
mov esi, str._02x
xor eax, eax
mov ecx, 0x973824
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], eax
lea edx, [ecx + 1]
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4f8aa5
sub ecx, edx
push ecx
push 0x973824
lea ecx, [ebp + 0x3c]
call fcn.004815d0
or dword [ebp + 4], 4
mov byte [ebp - 4], 8
lea edx, [ebp + 0x3c]
cmp dword [ebp + 0x50], 0xf
mov ecx, ebx
push dword [ebp + 0x4c]
cmova edx, dword [ebp + 0x3c]
call fcn.0048b260
mov byte [ebp - 4], 7
add esp, 4
mov ecx, dword [ebp + 0x50]
cmp ecx, 0xf
jbe 0x4f8b14
mov edx, dword [ebp + 0x3c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4f8b0a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4f86b7
push ecx
push edx
call fcn.00732c0f
add esp, 8
mov eax, dword [ebp]
mov ebx, dword [ebp - 0x14]
mov eax, dword [eax + 0xe8]
mov ecx, dword [eax + ebx*4]
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x4f8db0
mov edx, 0x806b84
lea ecx, [ebp - 0xe4]
call fcn.004853b0
mov edi, eax
mov eax, dword [ebp]
mov ecx, dword [eax + 0xe8]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx + 8]
mov ecx, dword [0x8d6528]
cmp ecx, 0x10
ja case.0x4f8b5f.0
jmp dword [ecx*4 + 0x4f93cc]
cmp ecx, 0xf
je 0x4f8b84
cmp ecx, 0xe
jne 0x4f8b78
cmp edx, 0x100
jl 0x4f8b84
mov ecx, 0xf
mov eax, 0x973834
jmp 0x4f8b8e
mov ecx, 7
mov eax, 0x97382c
mov byte [eax], 0
mov esi, 1
test edx, esi
setne al
add esi, esi
add al, 0x30
mov byte [ecx + 0x973824], al
sub ecx, 1
jns 0x4f8b96
jmp 0x4f8d25
lea eax, [edx + 0xff]
cmp eax, 0x1fe
ja 0x4f8bd1
movsx edx, dx
mov ecx, 0x775b24
push edx
mov eax, 5
push ecx
push eax
jmp 0x4f8d18
push edx
mov ecx, 0x775b28
mov eax, 6
push ecx
push eax
jmp 0x4f8d18
push edx
push str._02d
push 3
jmp 0x4f8d18
push edx
push 0x775b24
push 4
jmp 0x4f8d18
push edx
push 0x775b34
push 5
jmp 0x4f8d18
push edx
push 0x775b28
push 6
jmp 0x4f8d18
push edx
push 0x775b38
push 7
jmp 0x4f8d18
push edx
push 0x775b3c
jmp 0x4f8d16
mov eax, dword [0x8bb098]
mov ecx, 0x775b44
shr eax, 2
test al, 1
mov eax, 0x775b40
push edx
cmove eax, ecx
push eax
push 2
jmp 0x4f8d18
mov ecx, dword [0x8bb098]
movzx eax, dl
push eax
shr ecx, 2
mov eax, str._02X._02X
sar edx, 8
test cl, 1
push edx
mov ecx, str._02x._02x
cmove eax, ecx
push eax
push 6
push 0x973824
call fcn.004835e0
add esp, 0x14
jmp 0x4f8d25
mov ecx, dword [0x8bb098]
movzx eax, dl
push eax
shr ecx, 2
mov eax, str._03X._02X
sar edx, 8
test cl, 1
push edx
mov ecx, str._03x._02x
cmove eax, ecx
push eax
push 7
push 0x973824
call fcn.004835e0
add esp, 0x14
jmp 0x4f8d25
cmp edx, 0x100
jge 0x4f8cd8
mov eax, dword [0x8bb098]
shr eax, 2
test al, 1
mov eax, str._02X
push edx
cmove eax, esi
push eax
push 3
jmp 0x4f8d18
cmp edx, 0x10000
jge case.0x4f8b5f.6
mov eax, dword [0x8bb098]
mov ecx, str._04x
shr eax, 2
test al, 1
mov eax, str._04X
push edx
cmove eax, ecx
push eax
push 5
jmp 0x4f8d18
mov eax, dword [0x8bb098]
mov ecx, str._08x
shr eax, 2
test al, 1
mov eax, str._08X
push edx
cmove eax, ecx
push eax
push 9
push 0x973824
call fcn.004835e0
add esp, 0x10
xor eax, eax
mov ecx, 0x973824
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], eax
lea edx, [ecx + 1]
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4f8d41
sub ecx, edx
push ecx
push 0x973824
lea ecx, [ebp + 0x3c]
call fcn.004815d0
or dword [ebp + 4], 8
mov byte [ebp - 4], 9
lea edx, [ebp + 0x3c]
cmp dword [ebp + 0x50], 0xf
mov ecx, edi
push dword [ebp + 0x4c]
cmova edx, dword [ebp + 0x3c]
call fcn.0048b260
mov byte [ebp - 4], 7
add esp, 4
mov ecx, dword [ebp + 0x50]
cmp ecx, 0xf
jbe 0x4f8db0
mov edx, dword [ebp + 0x3c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4f8da6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4f86b7
push ecx
push edx
call fcn.00732c0f
add esp, 8
mov dl, 0xa
lea ecx, [ebp - 0xe4]
call fcn.00488cd0
mov eax, dword [ebp]
inc ebx
mov esi, dword [ebp - 0x1c]
add esi, 0x18
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x1c], esi
mov ecx, dword [eax + 0xe8]
mov eax, dword [eax + 0xec]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x4f87f0
mov ebx, dword [ebp + 0x78]
lea edx, [ebp + 0x64]
mov edi, dword [ebp + 0x74]
cmp ebx, 0xf
cmova edx, dword [ebp + 0x64]
or esi, 0xffffffff
test edi, edi
je 0x4f8e21
lea eax, [edi - 1]
mov ecx, esi
cmp eax, esi
cmovb ecx, eax
add ecx, edx
cmp byte [ecx], 0x2e
je 0x4f8e1a
mov edi, edi
cmp ecx, edx
je 0x4f8e21
dec ecx
cmp byte [ecx], 0x2e
jne 0x4f8e10
sub ecx, edx
cmp ecx, 0xffffffff
jne 0x4f8e36
push 7
push str..script
lea ecx, [ebp + 0x64]
call fcn.004851c0
mov ebx, dword [ebp + 0x78]
mov edi, dword [ebp + 0x74]
cmp ebx, 0xf
lea eax, [ebp + 0x64]
cmova eax, dword [ebp + 0x64]
mov dword [ebp - 0x14], eax
test edi, edi
je 0x4f8e63
push edi
push 0x5c
push eax
call sub.VCRUNTIME140.dll_memchr
add esp, 0xc
test eax, eax
je 0x4f8e63
sub eax, dword [ebp - 0x14]
cmp eax, 0xffffffff
jne 0x4f8f0d
mov eax, dword [ebp]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0x98]
test ecx, ecx
je 0x4f8e84
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ebx, dword [ebp + 0x78]
mov ecx, eax
mov edi, dword [ebp + 0x74]
jmp 0x4f8e89
mov ecx, 0x8cd428
mov edx, dword [ecx + 0x10]
mov eax, closesocket
sub eax, edx
cmp eax, edi
jb 0x4f92d8
cmp dword [ecx + 0x14], 0xf
jbe 0x4f8ea3
mov ecx, dword [ecx]
push edi
cmp ebx, 0xf
lea eax, [ebp + 0x64]
cmova eax, dword [ebp + 0x64]
push eax
push edx
push ecx
push ecx
push dword [ebp - 0x28]
lea ecx, [ebp + 0x3c]
call fcn.00485710
or dword [ebp + 4], 0x40
lea ecx, [ebp + 0x64]
call fcn.00481520
mov eax, dword [ebp + 0x3c]
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x68], eax
mov eax, dword [ebp + 0x44]
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x48]
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x4c]
mov dword [ebp + 0x74], eax
mov eax, dword [ebp + 0x50]
mov dword [ebp + 0x78], eax
mov dword [ebp + 0x4c], 0
mov dword [ebp + 0x50], 0xf
mov byte [ebp + 0x3c], 0
call fcn.00481520
mov ebx, dword [ebp + 0x78]
mov edi, dword [ebp + 0x74]
cmp ebx, 0xf
mov dword [ebp - 0x18], 0
lea eax, [ebp + 0x64]
mov dword [ebp - 0x14], 0
cmova eax, dword [ebp + 0x64]
push edi
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xa
call fcn.005ac900
mov byte [ebp - 4], 0xb
mov edi, dword [ebp - 0x18]
test edi, edi
je 0x4f8f4b
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 4]
call eax
test al, al
jne 0x4f8f6c
lea eax, [ebp + 0x3c]
push eax
lea ecx, [ebp - 0xdc]
call fcn.00483110
mov eax, dword [ebp + 4]
or eax, 0x81
cmp dword [ebp + 0x4c], 0
jne 0x4f8f6f
xor bl, bl
jmp 0x4f8f71
mov eax, dword [ebp + 4]
mov bl, 1
test al, 1
je 0x4f8f7d
lea ecx, [ebp + 0x3c]
call fcn.00481520
test bl, bl
je 0x4f91b1
mov byte [ebp - 4], 0xc
test edi, edi
je 0x4f8fac
mov eax, dword [edi]
lea ecx, [ebp - 0xf4]
push ecx
mov ecx, edi
call dword [eax + 0x48]
test eax, eax
jne 0x4f9023
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
jmp 0x4f8fb1
mov eax, 0x8cd428
sub esp, 8
lea ecx, [ebp - 0x1b0]
push 2
push eax
call fcn.004d1120
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b0]
add ecx, dword [eax + 4]
call dword [sym.imp.MSVCP140.dll_public:_bool___thiscall_std::ios_base::operator_bool_void_const]
test al, al
je 0x4f92dd
lea eax, [ebp - 0xdc]
push eax
lea ecx, [ebp - 0x1b0]
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_streambuf_char__struct_std::char_traits_char____]
push 2
push 0
push 0
lea ecx, [ebp - 0x1b0]
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::seekp_long_long___int64___int_]
lea eax, [ebp + 0x3c]
push eax
lea ecx, [ebp - 0x1b0]
call dword [sym.imp.MSVCP140.dll_public:_class_std::fpos_struct__Mbstatet____thiscall_std::basic_ostream_char__struct_std::char_traits_char__::tellp_void_]
lea ecx, [ebp - 0x1b0]
call fcn.004cf3a0
lea eax, [ebp + 0x3c]
mov dword [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x18]
call fcn.005ad7e0
push 6
push str.saved
push 0
mov ecx, eax
mov byte [ebp - 4], 0x10
call fcn.0048b070
mov edx, eax
xor eax, eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], eax
mov ecx, dword [edx]
mov dword [ebp + 0x24], ecx
mov eax, dword [edx + 4]
mov dword [ebp + 0x28], eax
mov eax, dword [edx + 8]
mov dword [ebp + 0x2c], eax
mov eax, dword [edx + 0xc]
mov dword [ebp + 0x30], eax
mov eax, dword [edx + 0x10]
mov dword [ebp + 0x34], eax
mov eax, dword [edx + 0x14]
mov dword [ebp + 0x38], eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov byte [edx], 0
push 3
push 0x80d6f0
lea ecx, [ebp + 0x24]
mov byte [ebp - 4], 0x11
call fcn.004851c0
mov ebx, dword [ebp - 0x28]
mov edx, eax
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
mov ecx, dword [edx]
mov dword [ebx], ecx
mov eax, dword [edx + 4]
mov dword [ebx + 4], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
mov eax, dword [edx + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [ebx + 0x14], eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov byte [edx], 0
mov ecx, dword [ebp + 0x38]
cmp ecx, 0xf
jbe 0x4f9128
mov edx, dword [ebp + 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4f911e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4f911e
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00732c0f
add esp, 8
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x34], 0
mov dword [ebp + 0x38], 0xf
mov byte [ebp + 0x24], 0
call fcn.00481520
jmp 0x4f91fc
mov ebx, dword [ebp - 0x28]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], 0xf
mov dword [ebx + 0x14], 0xf
mov eax, dword [str.nothing_to_save]
mov dword [ebx], eax
mov eax, dword [0x80e45c]
mov dword [ebx + 4], eax
mov eax, dword [0x80e460]
mov dword [ebx + 8], eax
mov ax, word [0x80e464]
mov word [ebx + 0xc], ax
mov al, byte [0x80e466]
mov byte [ebx + 0xe], al
mov byte [ebx + 0xf], 0
mov edi, dword [ebp - 0x14]
test edi, edi
je 0x4f9221
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x4f9221
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x4f9221
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
lea ecx, [ebp - 0x44]
call fcn.004e5d60
lea ecx, [ebp - 0x34]
call fcn.004e5d60
mov eax, dword [ebp - 0x24]
push dword [eax + 4]
lea eax, [ebp - 0x24]
push eax
mov ecx, eax
call fcn.0049ad10
push 0x40
push dword [ebp - 0x24]
call fcn.00732c0f
mov eax, dword [ebp - 0xf4]
add esp, 8
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xf4], 0x80afec
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0xf8], eax
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0xdc], 0x775aac
call fcn.00483030
lea ecx, [ebp - 0xdc]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0xd4]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x8c]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp + 0x64]
call fcn.00481520
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x54]
xor ecx, ebp
call fcn.0073297b
lea esp, [ebp + 0x58]
pop ebp
ret 0x1c
call fcn.00480e80
push str.File_open_write_error
lea ecx, [ebp - 0x100]
call fcn.00480e90
push 0x8b6788
lea eax, [ebp - 0x100]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
mov edi, edi
mov byte [edi - 0x75], ah
add byte [ebp - 0xff7b], cl
call dword [eax - 0x18]
xor ah, byte [esi - 0x74ffdd]
inc edx
or dword [edi], -100
or byte [edi], 0x4a
or dword [edi], 0xffffffbc
or byte [edi], 0xf2
or byte [edi], 0x67
or dword [edi], 0x25
or dword [edi], 0x29
or byte [edi], 0x50
or byte [edi], 0x5d
or byte [edi], 0x6a
or byte [edi], 0x75
or byte [edi], 0x82
or byte [edi], 0x8f
or byte [edi], 0xdd
or dword [edi], case.0x4f81d6.14
fld qword [ecx - 0x7a90ffb1]
dec edi
add byte [edx + 0x6f004f84], dh
test dword [edi], ecx
rol byte [edi + ecx*2 + 0x4f850500], cl
add byte [1375752069], dh
test dword [edi], ecx
pop ecx
test byte [edi], cl
test byte [edi], cl
jno 5214958
dec edi
add byte [esi - 0x7c], bh
dec edi
add byte [ebx - 0x67ffb07c], cl
test byte [edi], cl
movsd dword es:[edi], dword [esi]
test byte [edi], cl
adc al, byte [edi + ecx*2 + 0x4f841200]
add byte [edx], dl
test byte [edi], cl
add eax, 0x79004f8a
mov dword [edi], ecx
or eax, 0x99004f8a
mov dword [edi], ecx
iretd