Function at 0x4158c0
Capabilities:
Move file
Read file on windows
Write file on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47bd35
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ecx
mov eax, 0x20083c
call fcn.00457520
mov eax, dword [0x4a5114]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ecx, 0x4ad16d
mov dword [ebp - 4], 1
call fcn.0047a242
mov byte [ebp - 4], 2
lea ecx, [ebx + 0x10]
cmp dword [ebx + 0x24], 8
mov dword [ebp - 0x200358], 0
cmovae ecx, dword [ebx + 0x10]
xor eax, eax
mov word [ebp - 0x200368], ax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x200354], 7
cmp eax, 7
ja 0x415975
lea esi, [eax + eax]
mov dword [ebp - 0x200358], eax
push esi
push ecx
lea eax, [ebp - 0x200368]
push eax
call fcn.00458330
add esp, 0xc
xor eax, eax
mov word [ebp + esi - 0x200368], ax
jmp 0x41598f
push ecx
mov byte [ebp - 0x200804], 0
lea ecx, [ebp - 0x200368]
push dword [ebp - 0x200804]
push eax
call fcn.00410210
push 0xffffffffffffffff
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x200400]
cmp dword [ebp - 0x200354], 8
lea eax, [ebp - 0x200368]
push 9
cmovae eax, dword [ebp - 0x200368]
push ecx
push eax
call fcn.0045415d
test eax, eax
jne 0x416c4b
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x200354]
cmp edx, 8
jb 0x415a04
mov ecx, dword [ebp - 0x200368]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4159fa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c5e
push edx
push ecx
call fcn.00456381
add esp, 8
cmp dword [ebx + 0x24], 8
lea edx, [ebx + 0x10]
cmovae edx, dword [ebx + 0x10]
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415a14
sub ecx, esi
mov dword [ebp - 0x200358], 0
sar ecx, 1
xor eax, eax
mov dword [ebp - 0x200354], 7
mov word [ebp - 0x200368], ax
cmp ecx, 7
ja 0x415a6b
lea esi, [ecx + ecx]
mov dword [ebp - 0x200358], ecx
push esi
push edx
lea eax, [ebp - 0x200368]
push eax
call fcn.00458330
add esp, 0xc
xor eax, eax
mov word [ebp + esi - 0x200368], ax
jmp 0x415a84
push edx
mov byte [ebp - 0x200804], al
push dword [ebp - 0x200804]
push ecx
lea ecx, [ebp - 0x200368]
call fcn.00410210
mov byte [ebp - 4], 4
lea edx, [ebp - 0x200368]
cmp dword [ebp - 0x200354], 8
mov ecx, dword [ebp - 0x2003f8]
cmovae edx, dword [ebp - 0x200368]
add ecx, 0xfffffffe
mov eax, dword [ebp - 0x2003f4]
adc eax, 0xffffffff
push eax
push ecx
push edx
call fcn.00454595
add esp, 0xc
test eax, eax
jne 0x416c63
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x200354]
cmp edx, 8
jb 0x415b05
mov ecx, dword [ebp - 0x200368]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415afb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c76
push edx
push ecx
call fcn.00456381
add esp, 8
cmp dword [ebx + 0x24], 8
lea ecx, [ebx + 0x10]
mov dword [ebp - 0x200420], 0
cmovae ecx, dword [ebx + 0x10]
xor eax, eax
mov word [ebp - 0x200430], ax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x20041c], 7
cmp eax, 7
ja 0x415b5b
lea esi, [eax + eax]
mov dword [ebp - 0x200420], eax
push esi
push ecx
lea eax, [ebp - 0x200430]
push eax
call fcn.00458330
add esp, 0xc
xor eax, eax
mov word [ebp + esi - 0x200430], ax
jmp 0x415b75
push ecx
mov byte [ebp - 0x200804], 0
lea ecx, [ebp - 0x200430]
push dword [ebp - 0x200804]
push eax
call fcn.00410210
push 0x200
lea eax, [ebp - 0x350]
mov byte [ebp - 4], 5
push 0
push eax
call fcn.004588b0
add esp, 0xc
lea eax, [ebp - 0x200800]
push pe_nt_image_headers32
push 0
push eax
call fcn.004588b0
add esp, 0xc
lea ecx, [ebp - 0x200800]
push 1
call fcn.004073f0
push 0x38
lea eax, [ebp - 0x200468]
mov byte [ebp - 4], 6
push 0
push eax
call fcn.004588b0
add esp, 0xc
push 0x3c
call fcn.004560d4
mov esi, eax
add esp, 4
mov dword [ebp - 0x200804], esi
push 0x3c
push 0
push esi
mov byte [ebp - 4], 7
call fcn.004588b0
add esp, 0xc
call fcn.0044cae0
push 0
push 6
push eax
mov ecx, esi
call fcn.004068a0
push esi
push ecx
lea eax, [ebx + 0x28]
mov dword [esi], vtable.CryptoPP::Base64Decoder.1.0
push eax
lea ecx, [ebp - 0x200468]
mov dword [esi + 4], vtable.CryptoPP::Base64Decoder.0
mov byte [ebp - 4], 6
call fcn.00406100
lea eax, [ebp - 0x200468]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x2007c0]
call fcn.0041be70
push 0x80
lea eax, [ebp - 0x200520]
push 0
push eax
call fcn.004588b0
add esp, 0xc
lea ecx, [ebp - 0x200520]
call fcn.0044d480
push 0x20
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x200520]
push 0
mov dword [ebp - method.CryptoPP::AutoSeededRandomPool.virtual_0], vtable.CryptoPP::AutoSeededRandomPool.0
call fcn.004424e0
push 0x114
lea eax, [ebp - 0x200638]
push 0
push eax
call fcn.004588b0
mov eax, dword [ebp - 0x2007f8]
add esp, 0xc
mov eax, dword [eax + 4]
lea esi, [ebp - 0x2007f8]
add esi, eax
push 1
lea ecx, [ebp - 0x200634]
mov byte [ebp - 4], 0xb
call fcn.0041ee10
push 1
lea ecx, [ebp - 0x20062c]
mov byte [ebp - 4], 0xc
call fcn.004073f0
mov dword [ebp - 0x200638], 0x483344
mov dword [ebp - 0x200634], 0x483370
mov dword [ebp - 0x200630], 0x483394
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x200624]
mov eax, dword [ebp - 0x200624]
push esi
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x2003e0]
push 0x200
push 0x494eb0
mov dword [ebp - 0x2003d0], 0
mov dword [ebp - 0x2003cc], 0xf
mov byte [ebp - 0x2003e0], 0
call fcn.0040d270
cmp dword [ebx + 0x24], 8
lea eax, [ebx + 0x10]
push 0x4950b4
cmovae eax, dword [ebx + 0x10]
push eax
call fcn.004634bc
push 2
push 0xffffffffffffffff
mov esi, eax
push 0xfffffe00
push esi
mov dword [ebp - 0x200804], esi
call fcn.00463f47
push esi
push 1
lea eax, [ebp - 0x350]
push 0x200
push eax
call fcn.00463b5c
add esp, 0x28
xor edx, edx
nop
cmp dword [ebp - 0x2003cc], 0x10
lea eax, [ebp - 0x2003e0]
mov cl, byte [ebp + edx - 0x350]
cmovae eax, dword [ebp - 0x2003e0]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x200
jle 0x415d70
mov dword [ebp - 0x2003b8], 0
mov dword [ebp - 0x2003b4], 0xf
mov byte [ebp - 0x2003c8], 0
push 0x38
lea eax, [ebp - 0x2004a0]
mov byte [ebp - 4], 0x10
push 0
push eax
call fcn.004588b0
add esp, 0xc
push 0x4c
call fcn.004560d4
mov esi, eax
add esp, 4
mov dword [ebp - 0x20080c], esi
push 0x4c
push 0
push esi
mov byte [ebp - 4], 0x11
call fcn.004588b0
add esp, 0xc
push 0x10
call fcn.004560d4
mov edi, eax
add esp, 4
mov dword [ebp - 0x200808], edi
xorps xmm0, xmm0
mov byte [ebp - 4], 0x12
push 0
mov ecx, edi
movups xmmword [edi], xmm0
call fcn.0041ee10
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x2003c8]
push dword [section..data]
mov dword [edi + 0xc], eax
lea ecx, [ebp - 0x200520]
mov dword [edi], vtable.CryptoPP::StringSinkTemplate_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___.0
mov dword [edi + 4], vtable.CryptoPP::StringSinkTemplate_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___.1.0
mov eax, dword [ebp - 0x200638]
push 0
push ecx
lea ecx, [ebp - 0x200638]
mov eax, dword [eax + 0x1c]
call eax
push edi
push 0
push 0
push eax
mov ecx, esi
call fcn.0043b6f0
push esi
push ecx
lea eax, [ebp - 0x2003e0]
mov dword [esi], vtable.CryptoPP::PK_DecryptorFilter.0
push eax
lea ecx, [ebp - 0x2004a0]
mov dword [esi + 4], vtable.CryptoPP::PK_DecryptorFilter.1.0
mov byte [ebp - 4], 0x10
call fcn.00406100
mov byte [ebp - 4], 0x13
push dword [ebp - 0x200804]
call fcn.00460f5e
add esp, 4
mov dword [ebp - 0x200358], 0
cmp dword [ebx + 0x24], 8
lea ecx, [ebx + 0x10]
mov dword [ebp - 0x200354], 7
cmovae ecx, dword [ebx + 0x10]
xor eax, eax
mov word [ebp - 0x200368], ax
mov eax, dword [ebx + 0x20]
cmp eax, 7
ja 0x415ee5
lea esi, [eax + eax]
mov dword [ebp - 0x200358], eax
push esi
push ecx
lea eax, [ebp - 0x200368]
push eax
call fcn.00458330
add esp, 0xc
xor eax, eax
mov word [ebp + esi - 0x200368], ax
jmp 0x415eff
push ecx
mov byte [ebp - 0x200804], 0
lea ecx, [ebp - 0x200368]
push dword [ebp - 0x200804]
push eax
call fcn.00410210
push 0xffffffffffffffff
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x200400]
cmp dword [ebp - 0x200354], 8
lea eax, [ebp - 0x200368]
push 9
cmovae eax, dword [ebp - 0x200368]
push ecx
push eax
call fcn.0045415d
test eax, eax
jne 0x416c7b
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x200354]
cmp edx, 8
jb 0x415f74
mov ecx, dword [ebp - 0x200368]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x415f6a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416c8e
push edx
push ecx
call fcn.00456381
add esp, 8
cmp dword [ebx + 0x24], 8
lea edx, [ebx + 0x10]
cmovae edx, dword [ebx + 0x10]
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415f84
sub ecx, esi
mov dword [ebp - 0x200358], 0
sar ecx, 1
xor eax, eax
mov dword [ebp - 0x200354], 7
mov word [ebp - 0x200368], ax
cmp ecx, 7
ja 0x415fdb
lea esi, [ecx + ecx]
mov dword [ebp - 0x200358], ecx
push esi
push edx
lea eax, [ebp - 0x200368]
push eax
call fcn.00458330
add esp, 0xc
xor eax, eax
mov word [ebp + esi - 0x200368], ax
jmp 0x415ff4
push edx
mov byte [ebp - 0x200804], al
push dword [ebp - 0x200804]
push ecx
lea ecx, [ebp - 0x200368]
call fcn.00410210
mov byte [ebp - 4], 0x15
lea edx, [ebp - 0x200368]
cmp dword [ebp - 0x200354], 8
mov ecx, dword [ebp - 0x2003f8]
cmovae edx, dword [ebp - 0x200368]
add ecx, 0xfffffe00
mov eax, dword [ebp - 0x2003f4]
adc eax, 0xffffffff
push eax
push ecx
push edx
call fcn.00454595
add esp, 0xc
test eax, eax
jne 0x416c93
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x200354]
cmp edx, 8
jb 0x416078
mov ecx, dword [ebp - 0x200368]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41606e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416ca6
push edx
push ecx
call fcn.00456381
add esp, 8
push 0x100
push 0x4950c0
lea ecx, [ebp - 0x200380]
mov dword [ebp - 0x200370], 0
mov dword [ebp - 0x20036c], 0xf
mov byte [ebp - 0x200380], 0
call fcn.0040d270
push 0x100
lea eax, [ebp - 0x150]
mov byte [ebp - 4], 0x16
push 0
push eax
call fcn.004588b0
add esp, 0xc
lea eax, [ebx + 0x10]
cmp dword [ebx + 0x24], 8
cmovae eax, dword [ebx + 0x10]
push 0x4950b4
push eax
call fcn.004634bc
push 2
push 0xffffffffffffffff
mov esi, eax
push 0xffffff00
push esi
call fcn.00463f47
push esi
push 1
lea eax, [ebp - 0x150]
push 0x100
push eax
call fcn.00463b5c
push esi
call fcn.00460f5e
add esp, 0x2c
xor edx, edx
nop dword [eax + eax]
cmp dword [ebp - 0x20036c], 0x10
lea eax, [ebp - 0x200380]
mov cl, byte [ebp + edx - 0x150]
cmovae eax, dword [ebp - 0x200380]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x100
jle 0x416110
sub esp, 8
lea ecx, [ebp - 0x200380]
call fcn.00409c00
push 0
push 0x494981
lea ecx, [ebp - 0x200368]
mov dword [ebp - 0x200808], eax
lea esi, [eax + 2]
mov dword [ebp - 0x200358], 0
mov dword [ebp - 0x20080c], esi
mov dword [ebp - 0x200354], 0xf
mov byte [ebp - 0x200368], 0
call fcn.0040d270
mov edi, 0x100
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x200358]
sub edi, esi
cmp edi, edx
ja 0x4161b6
cmp dword [ebp - 0x200354], 0x10
lea eax, [ebp - 0x200368]
mov dword [ebp - 0x200358], edi
cmovae eax, dword [ebp - 0x200368]
mov byte [eax + edi], 0
jmp 0x416225
mov eax, dword [ebp - 0x200354]
mov ecx, edi
sub ecx, edx
sub eax, edx
mov dword [ebp - 0x200804], ecx
cmp ecx, eax
ja 0x416209
cmp dword [ebp - 0x200354], 0x10
lea esi, [ebp - 0x200368]
push ecx
cmovae esi, dword [ebp - 0x200368]
lea eax, [ecx + edx]
add esi, edx
mov dword [ebp - 0x200358], eax
push 0
push esi
call fcn.004588b0
mov eax, dword [ebp - 0x200804]
add esp, 0xc
mov byte [eax + esi], 0
mov esi, dword [ebp - 0x20080c]
jmp 0x416225
push 0
push ecx
mov byte [ebp - 0x200804], 0
push dword [ebp - 0x200804]
push ecx
lea ecx, [ebp - 0x200368]
call fcn.00410480
xor edx, edx
test edi, edi
jle 0x416265
nop dword [eax + eax]
cmp dword [ebp - 0x20036c], 0x10
lea eax, [ebp - 0x200380]
cmovae eax, dword [ebp - 0x200380]
add eax, edx
cmp dword [ebp - 0x200354], 0x10
mov cl, byte [eax + esi]
lea eax, [ebp - 0x200368]
cmovae eax, dword [ebp - 0x200368]
mov byte [eax + edx], cl
inc edx
cmp edx, edi
jl 0x416230
cmp dword [ebx + 0x24], 8
lea ecx, [ebx + 0x10]
mov dword [ebp - 0x200408], 0
cmovae ecx, dword [ebx + 0x10]
xor eax, eax
mov word [ebp - 0x200418], ax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x200404], 7
cmp eax, 7
ja 0x4162bb
lea esi, [eax + eax]
mov dword [ebp - 0x200408], eax
push esi
push ecx
lea eax, [ebp - 0x200418]
push eax
call fcn.00458330
add esp, 0xc
xor eax, eax
mov word [ebp + esi - 0x200418], ax
jmp 0x4162d5
push ecx
mov byte [ebp - 0x200804], 0
lea ecx, [ebp - 0x200418]
push dword [ebp - 0x200804]
push eax
call fcn.00410210
lea eax, [ebp - 0x2003f8]
mov byte [ebp - 4], 0x18
push eax
lea ecx, [ebp - 0x200418]
call fcn.00404c90
lea ecx, [ebp - 0x200850]
mov byte [ebp - 4], 0x19
push ecx
mov ecx, eax
call fcn.00404b70
push 0x4951c4
mov ecx, eax
mov byte [ebp - 4], 0x1a
call fcn.00409eb0
mov dword [ebp - 0x200814], 0
mov dword [ebp - 0x200810], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x200824], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x200814], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x200368]
mov byte [ebp - 4], 0x1b
push eax
lea ecx, [ebp - 0x200824]
call fcn.00409f30
mov dword [ebp - 0x200388], 0
mov dword [ebp - 0x200384], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x200398], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x200388], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x1d
mov edx, dword [ebp - 0x200810]
cmp edx, 0x10
jb 0x4163d9
mov ecx, dword [ebp - 0x200824]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4163cf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416cab
push edx
push ecx
call fcn.00456381
add esp, 8
mov dword [ebp - 0x200814], 0
mov dword [ebp - 0x200810], 0xf
mov byte [ebp - 0x200824], 0
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x20083c]
cmp edx, 0x10
jb 0x416432
mov ecx, dword [ebp - 0x200850]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x416428
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416cb0
push edx
push ecx
call fcn.00456381
add esp, 8
mov dword [ebp - 0x200840], 0
mov dword [ebp - 0x20083c], 0xf
mov byte [ebp - 0x200850], 0
mov byte [ebp - 4], 0x1f
mov edx, dword [ebp - 0x2003e4]
cmp edx, 8
jb 0x416491
mov ecx, dword [ebp - 0x2003f8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x416487
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416cb5
push edx
push ecx
call fcn.00456381
add esp, 8
xor eax, eax
mov dword [ebp - 0x2003e8], 0
cmp dword [ebp - 0x200384], 0x10
lea esi, [ebp - 0x200398]
mov word [ebp - 0x2003f8], ax
lea ecx, [ebp - 0x200398]
cmovae esi, dword [ebp - 0x200398]
add esi, dword [ebp - 0x200388]
cmp dword [ebp - 0x200384], 0x10
mov dword [ebp - 0x2003a0], eax
cmovae ecx, dword [ebp - 0x200398]
mov word [ebp - 0x2003b0], ax
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x200804], ecx
push eax
lea ecx, [ebp - 0x2003b0]
mov dword [ebp - 0x2003e4], 7
mov dword [ebp - 0x20039c], 7
call fcn.004098d0
push dword [ebp - 0x200804]
lea ecx, [ebp - 0x2003b0]
push esi
push dword [ebp - 0x200804]
call fcn.004119a0
mov byte [ebp - 4], 0x20
lea ecx, [ebx + 0x10]
cmp dword [ebx + 0x24], 8
mov dword [ebp - 0x200814], 0
cmovae ecx, dword [ebx + 0x10]
xor eax, eax
mov word [ebp - 0x200824], ax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x200810], 7
cmp eax, 7
ja 0x41657b
lea esi, [eax + eax]
mov dword [ebp - 0x200814], eax
push esi
push ecx
lea eax, [ebp - 0x200824]
push eax
call fcn.00458330
add esp, 0xc
xor eax, eax
mov word [ebp + esi - 0x200824], ax
jmp 0x416595
push ecx
mov byte [ebp - 0x200804], 0
lea ecx, [ebp - 0x200824]
push dword [ebp - 0x200804]
push eax
call fcn.00410210
push 0xffffffffffffffff
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x200400]
cmp dword [ebp - 0x200810], 8
lea eax, [ebp - 0x200824]
push 9
cmovae eax, dword [ebp - 0x200824]
push ecx
push eax
call fcn.0045415d
lea ecx, [ebp - 0x200824]
test eax, eax
jne 0x416cba
mov byte [ebp - 4], 0x20
call fcn.004099f0
cmp dword [ebx + 0x24], 8
lea edx, [ebx + 0x10]
cmovae edx, dword [ebx + 0x10]
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4165e5
sub ecx, esi
mov dword [ebp - 0x200814], 0
sar ecx, 1
xor eax, eax
mov dword [ebp - 0x200810], 7
mov word [ebp - 0x200824], ax
cmp ecx, 7
ja 0x41663c
lea esi, [ecx + ecx]
mov dword [ebp - 0x200814], ecx
push esi
push edx
lea eax, [ebp - 0x200824]
push eax
call fcn.00458330
add esp, 0xc
xor eax, eax
mov word [ebp + esi - 0x200824], ax
jmp 0x416655
push edx
mov byte [ebp - 0x200804], al
push dword [ebp - 0x200804]
push ecx
lea ecx, [ebp - 0x200824]
call fcn.00410210
mov byte [ebp - 4], 0x22
lea esi, [ebp - 0x200824]
cmp dword [ebp - 0x200810], 8
mov eax, 0x100
mov edi, dword [ebp - 0x2003f8]
mov ecx, edi
cmovae esi, dword [ebp - 0x200824]
sub eax, dword [ebp - 0x200808]
cdq
sub ecx, eax
mov eax, dword [ebp - 0x2003f4]
sbb eax, edx
push eax
push ecx
push esi
call fcn.00454595
add esp, 0xc
lea ecx, [ebp - 0x200824]
test eax, eax
jne 0x416cc7
mov byte [ebp - 4], 0x20
call fcn.004099f0
mov edx, dword [ebp - 0x2003b4]
xor ecx, ecx
mov esi, dword [ebp - 0x2003c8]
nop dword [eax + eax]
cmp edx, 0x10
lea eax, [ebp - 0x2003c8]
cmovae eax, esi
mov al, byte [eax + ecx]
mov byte [ebp + ecx - 0x4c], al
inc ecx
cmp ecx, 0x20
jl 0x4166c0
xor ecx, ecx
nop dword [eax + eax]
cmp edx, 0x10
lea eax, [ebp - 0x2003c8]
cmovae eax, esi
mov al, byte [eax + ecx + 0x20]
mov byte [ebp + ecx - 0x2c], al
inc ecx
cmp ecx, 0x10
jl 0x4166e0
push 0xc0
lea eax, [ebp - 0x2006f8]
push 0
push eax
call fcn.004588b0
add esp, 0xc
lea ecx, [ebp - 0x2006f8]
call fcn.004075a0
push 0x10
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x23
push eax
push 0x20
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x2006f8]
call fcn.00420e50
mov eax, dword [ebp - 0x2003f4]
sub edi, 0x1400000
push 0x4950b4
sbb eax, 0
mov dword [ebp - 0x20080c], edi
cmp dword [ebx + 0x24], 8
mov dword [ebp - 0x200804], eax
lea eax, [ebx + 0x10]
cmovae eax, dword [ebx + 0x10]
push eax
call fcn.004634bc
xorps xmm0, xmm0
mov dword [ebp - 0x200808], eax
movlpd qword [ebp - 0x200830], xmm0
add esp, 8
mov edi, dword [ebp - 0x20082c]
mov esi, dword [ebp - 0x200830]
nop word [eax + eax]
cmp edi, dword [ebp - 0x200804]
jg 0x41684d
jl 0x4167aa
cmp esi, dword [ebp - 0x20080c]
ja 0x41684d
push 0
push edi
push esi
push eax
call fcn.00463f47
push dword [ebp - 0x200808]
lea eax, [ebp - 0x100350]
push 0x100000
push 1
push eax
call fcn.00463b5c
add esp, 0x20
lea eax, [ebp - 0x100350]
lea ecx, [ebp - 0x2006f0]
push 0x100000
push eax
lea eax, [ebp - 0x200350]
push eax
call fcn.004451f0
push 0
push edi
push esi
push dword [ebp - 0x200808]
call fcn.00463f47
push dword [ebp - 0x200808]
lea eax, [ebp - 0x200350]
push 0x100000
push 1
push eax
call fcn.0046321e
add esp, 0x20
cmp edi, 0x96
jl 0x416839
jg 0x416827
test esi, esi
je 0x416839
mov esi, dword [ebp - 0x20080c]
mov edi, dword [ebp - 0x200804]
add esi, 0xa
adc edi, 0
mov eax, dword [ebp - 0x200808]
add esi, 0xa00000
adc edi, 0
jmp 0x416790
push eax
call fcn.00460f5e
add esp, 4
lea ecx, [ebp - 0x2003b0]
cmp dword [ebp - 0x20039c], 8
lea eax, [ebx + 0x10]
cmovae ecx, dword [ebp - 0x2003b0]
cmp dword [ebx + 0x24], 8
push ecx
cmovae eax, dword [ebx + 0x10]
push eax
call fcn.00463302
add esp, 8
lea ecx, [ebp - 0x200668]
call fcn.00407cd0
lea ecx, [ebp - 0x2006f8]
call fcn.00407bc0
mov byte [ebp - 4], 0x1f
mov edx, dword [ebp - 0x20039c]
cmp edx, 8
jb 0x4168d9
mov ecx, dword [ebp - 0x2003b0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4168cf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416cd4
push edx
push ecx
call fcn.00456381
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x18
mov edx, dword [ebp - 0x200384]
mov dword [ebp - 0x2003a0], 0
mov dword [ebp - 0x20039c], 7
mov word [ebp - 0x2003b0], ax
cmp edx, 0x10
jb 0x416934
mov ecx, dword [ebp - 0x200398]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41692a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416cd9
push edx
push ecx
call fcn.00456381
add esp, 8
lea ecx, [ebp - 0x200418]
mov dword [ebp - 0x200388], 0
mov dword [ebp - 0x200384], 0xf
mov byte [ebp - 0x200398], 0
call fcn.004099f0
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x200354]
cmp edx, 0x10
jb 0x416998
mov ecx, dword [ebp - 0x200368]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41698e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416cde
push edx
push ecx
call fcn.00456381
add esp, 8
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x20036c]
cmp edx, 0x10
jb 0x4169d6
mov ecx, dword [ebp - 0x200380]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4169cc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416ce3
push edx
push ecx
call fcn.00456381
add esp, 8
mov dword [ebp - 0x200370], 0
mov dword [ebp - 0x20036c], 0xf
mov byte [ebp - 0x200380], 0
mov dword [ebp - method.CryptoPP::SourceTemplate_class_CryptoPP::StringStore_.virtual_0], vtable.CryptoPP::SourceTemplate_class_CryptoPP::StringStore_.0
mov dword [ebp - method.CryptoPP::SourceTemplate_class_CryptoPP::StringStore_.1.virtual_0], vtable.CryptoPP::SourceTemplate_class_CryptoPP::StringStore_.1.0
mov byte [ebp - 4], 0x24
mov ecx, dword [ebp - 0x200494]
test ecx, ecx
je 0x416a19
mov eax, dword [ecx]
push 1
call dword [eax]
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x2003b4]
cmp edx, 0x10
jb 0x416a57
mov ecx, dword [ebp - 0x2003c8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x416a4d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416ce8
push edx
push ecx
call fcn.00456381
add esp, 8
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x2003cc]
mov dword [ebp - 0x2003b8], 0
mov dword [ebp - 0x2003b4], 0xf
mov byte [ebp - 0x2003c8], 0
cmp edx, 0x10
jb 0x416ab0
mov ecx, dword [ebp - 0x2003e0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x416aa6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416ced
push edx
push ecx
call fcn.00456381
add esp, 8
lea ecx, [ebp - 0x20062c]
mov dword [ebp - 0x2003d0], 0
mov dword [ebp - 0x2003cc], 0xf
mov byte [ebp - 0x2003e0], 0
call fcn.004078e0
lea ecx, [ebp - 0x200520]
mov dword [ebp - method.CryptoPP::NameValuePairs.virtual_0], vtable.CryptoPP::NameValuePairs.0
mov dword [ebp - method.CryptoPP::AutoSeededRandomPool.virtual_0], vtable.CryptoPP::AutoSeededRandomPool.0
call fcn.00406440
mov dword [ebp - method.CryptoPP::SourceTemplate_class_CryptoPP::StringStore_.virtual_0], vtable.CryptoPP::SourceTemplate_class_CryptoPP::StringStore_.0
mov dword [ebp - method.CryptoPP::SourceTemplate_class_CryptoPP::StringStore_.1.virtual_0], vtable.CryptoPP::SourceTemplate_class_CryptoPP::StringStore_.1.0
mov byte [ebp - 4], 0x25
mov ecx, dword [ebp - 0x20045c]
test ecx, ecx
je 0x416b1d
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [ebp - 0x200800]
call fcn.004078e0
lea ecx, [ebp - 0x200430]
mov dword [ebp - method.CryptoPP::NameValuePairs.virtual_0], vtable.CryptoPP::NameValuePairs.0
call fcn.004099f0
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebx + 0x24]
cmp edx, 8
jb 0x416be5
mov ecx, dword [ebx + 0x10]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x416bdb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416cf2
jmp 0x416bdb
push edx
push ecx
call fcn.00456381
add esp, 8
mov edx, dword [ebx + 0x3c]
xor eax, eax
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 7
mov word [ebx + 0x10], ax
cmp edx, 0x10
jb 0x416c2d
mov ecx, dword [ebx + 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x416c23
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416cf7
push edx
push ecx
call fcn.00456381
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00455e1e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
lea ecx, [ebp - 0x200368]
mov edx, eax
push ecx
mov ecx, str.file_size
call fcn.00405500
call fcn.00462bb8
lea ecx, [ebp - 0x200368]
mov edx, eax
push ecx
mov ecx, str.resize_file
call fcn.00405500
call fcn.00462bb8
lea ecx, [ebp - 0x200368]
mov edx, eax
push ecx
mov ecx, str.file_size
call fcn.00405500
call fcn.00462bb8
lea ecx, [ebp - 0x200368]
mov edx, eax
push ecx
mov ecx, str.resize_file
call fcn.00405500
call fcn.00462bb8
call fcn.00462bb8
call fcn.00462bb8
call fcn.00462bb8
push ecx
mov edx, eax
mov ecx, str.file_size
call fcn.00405500
push ecx
mov edx, eax
mov ecx, str.resize_file
call fcn.00405500
call fcn.00462bb8
call fcn.00462bb8
call fcn.00462bb8
call fcn.00462bb8
call fcn.00462bb8
call fcn.00462bb8
call fcn.00462bb8
call fcn.00462bb8
int3