Function at 0x5954f0
Capabilities:
Encode data using base64
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x60c2b9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x90
push ebx
push esi
push edi
mov ebx, ecx
xor esi, esi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x30], ebx
mov dword [ebp - 4], esi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x54], esi
mov word [ebp - 0x58], si
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], esi
mov word [ebp - 0x1c], si
mov edx, dword [ebx + 0xe4]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [ebp - 4], 2
je 0x595582
push esi
push edx
lea ecx, [ebp - 0x20]
call fcn.00402890
mov al, byte [ebx + 0x315]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebx + 0xe4]
push eax
neg al
push 1
push edx
sbb eax, eax
lea edx, [ebp - 0x20]
and eax, 0xfde9
push edx
push eax
push ecx
mov ecx, ebx
call fcn.005954c0
jmp 0x597b07
mov eax, dword [0x6ca27c]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebx + 0x28]
push 0x6a2454
push ecx
mov byte [ebp - 4], 3
call fcn.005c4c40
add esp, 8
test eax, eax
je 0x595a50
mov edx, dword [ebx + 0x28]
push 0x3d
push edx
call fcn.005c5b00
mov edi, eax
mov eax, dword [ebx + 0x28]
push 0x3f
push eax
mov dword [ebp - 0x50], edi
call fcn.005c5b00
mov ecx, dword [ebx + 0x28]
mov esi, eax
push 0x2f
push ecx
mov dword [ebp - 0x4c], esi
call fcn.005c5b00
add esp, 0x18
cmp edi, esi
mov dword [ebp - 0x64], eax
mov byte [ebp - 0x26], 0
jbe 0x59579f
cmp edi, eax
jbe 0x59579f
lea edx, [edi + 1]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x595976
push edx
lea ecx, [ebp - 0x2c]
call fcn.005e1315
mov edx, dword [ebp - 0x2c]
push 0x2e
push edx
call fcn.005c5b00
add esp, 8
mov dword [ebp - 0x68], eax
test eax, eax
je 0x59579f
cmp eax, dword [ebp - 0x2c]
je 0x59579f
mov eax, dword [0x6ca27c]
mov byte [ebp - 0x25], 0
mov dword [ebp - 0x24], eax
mov ecx, dword [ebx + 0x28]
lea edx, [ebp - 0x24]
push ecx
push 0x69ffbc
push edx
mov byte [ebp - 4], 4
call fcn.005d9fbb
mov eax, dword [ebp - 0x24]
add esp, 0xc
push 0x3f
push eax
call fcn.005c4b80
add esp, 8
test eax, eax
je 0x595666
mov byte [eax], 0
mov ecx, dword [ebp - 0x24]
push 0x2e
push ecx
call fcn.005c5b00
mov esi, eax
add esp, 8
test esi, esi
mov dword [ebp - 0x60], esi
je 0x5956ea
inc esi
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp - 0x60], esi
je 0x5956ea
mov edx, dword [0x6ca27c]
mov dword [ebp - 0x14], edx
push esi
lea eax, [ebp - 0x14]
push 0x69ffbc
push eax
mov byte [ebp - 4], 5
call fcn.005d9fbb
add esp, 0xc
lea ecx, [ebp - 0x14]
call fcn.005e15d4
mov ecx, dword [ebp - 0x14]
push ecx
push str.3GP_7Z_AAC_ACE_AIF_ARJ_ASF_AVI_BIN_BZ2_EXE_GZ_GZIP_IMG_ISO_LZH_M4A_M4V_MKV_MOV_MP3_MP4_MPA_MPE_MPEG_MPG_MSI_MSU_OGG_OGV_PDF_PLJ_PPS_PPT_QT_R0_R1_RA_RAR_RM_RMVB_SEA_SIT_SITX_TAR_TIF_TIFF_WAV_WMA_WMV_Z_ZIP
call fcn.005c4c40
add esp, 8
test eax, eax
je 0x5956de
push 0x2a
push esi
call fcn.005c4b80
add esp, 8
test eax, eax
jne 0x5956de
mov byte [ebp - 0x25], 1
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 4
call fcn.005e118c
mov esi, dword [ebp - 0x68]
or ecx, 0xffffffff
inc esi
xor eax, eax
mov dword [ebp - 0x68], esi
mov esi, dword [ebx + 0xec]
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x59571b
mov esi, dword [ebx + 0xdc]
test esi, esi
je 0x59576e
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x59576e
test esi, esi
je 0x59576e
mov al, byte [ebp - 0x25]
test al, al
je 0x595739
mov edx, dword [ebp - 0x60]
mov ecx, 0x6ceda0
push edx
push esi
call fcn.0042d0b0
test eax, eax
jne 0x595775
mov ecx, dword [ebp - 0x68]
push ecx
lea ecx, [ebp - 0x60]
call fcn.005e11fa
mov edx, dword [ebp - 0x60]
mov ecx, 0x6ceda0
push edx
push esi
mov byte [ebp - 4], 6
call fcn.0042d0b0
test eax, eax
je 0x595760
mov byte [ebp - 0x26], 1
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 4
call fcn.005e118c
jmp 0x595785
mov al, byte [ebp - 0x25]
test al, al
je 0x595781
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x2c]
push eax
call fcn.005e12c5
mov byte [ebp - 0x26], 1
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
call fcn.005e118c
mov al, byte [ebp - 0x26]
test al, al
jne 0x5959de
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
cmp eax, ecx
jbe 0x595996
cmp eax, dword [ebp - 0x64]
jbe 0x595996
lea edx, [eax + 1]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp - 0x50], edx
je 0x595976
push edx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x25], al
mov byte [ebp - 0x26], al
call fcn.005e1315
mov ecx, dword [ebp - 0x2c]
push 0x2e
push ecx
call fcn.005c5b00
add esp, 8
mov dword [ebp - 0x68], eax
test eax, eax
je 0x5959de
mov edx, dword [0x6ca27c]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x24]
mov byte [ebp - 4], 7
mov ecx, dword [eax + 0x28]
push ecx
push 0x69ffbc
push edx
call fcn.005d9fbb
mov eax, dword [ebp - 0x24]
add esp, 0xc
push 0x3f
push eax
call fcn.005c4b80
add esp, 8
test eax, eax
je 0x595830
mov byte [eax], 0
mov ecx, dword [ebp - 0x24]
push 0x2e
push ecx
call fcn.005c5b00
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x5958ae
inc ebx
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x5958ae
mov edx, dword [0x6ca27c]
mov dword [ebp - 0x14], edx
push ebx
lea eax, [ebp - 0x14]
push 0x69ffbc
push eax
mov byte [ebp - 4], 8
call fcn.005d9fbb
add esp, 0xc
lea ecx, [ebp - 0x14]
call fcn.005e15d4
mov ecx, dword [ebp - 0x14]
push ecx
push str.3GP_7Z_AAC_ACE_AIF_ARJ_ASF_AVI_BIN_BZ2_EXE_GZ_GZIP_IMG_ISO_LZH_M4A_M4V_MKV_MOV_MP3_MP4_MPA_MPE_MPEG_MPG_MSI_MSU_OGG_OGV_PDF_PLJ_PPS_PPT_QT_R0_R1_RA_RAR_RM_RMVB_SEA_SIT_SITX_TAR_TIF_TIFF_WAV_WMA_WMV_Z_ZIP
call fcn.005c4c40
add esp, 8
test eax, eax
je 0x5958a2
push 0x2a
push ebx
call fcn.005c4b80
add esp, 8
test eax, eax
jne 0x5958a2
mov byte [ebp - 0x25], 1
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 7
call fcn.005e118c
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x30]
inc eax
or ecx, 0xffffffff
mov esi, dword [edx + 0xec]
mov dword [ebp - 0x68], eax
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x5958e6
mov esi, dword [edx + 0xdc]
test esi, esi
je 0x595961
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x595961
test esi, esi
je 0x595961
mov al, byte [ebp - 0x25]
test al, al
je 0x59590f
push ebx
push esi
mov ecx, 0x6ceda0
call fcn.0042d0b0
test eax, eax
je 0x59590f
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x2c]
push edx
call fcn.005e12c5
jmp 0x595953
mov eax, dword [ebp - 0x68]
lea ecx, [ebp - 0x4c]
push eax
call fcn.005e11fa
mov ecx, dword [ebp - 0x4c]
mov byte [ebp - 4], 9
push ecx
push esi
mov ecx, 0x6ceda0
call fcn.0042d0b0
test eax, eax
mov bl, 1
jne 0x595937
mov bl, byte [ebp - 0x26]
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 7
call fcn.005e118c
test bl, bl
jne 0x595953
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x2c]
push eax
call fcn.005e1315
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
call fcn.005e118c
jmp 0x5959de
mov al, byte [ebp - 0x25]
test al, al
je 0x595953
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x2c]
push edx
call fcn.005e12c5
jmp 0x595953
mov ecx, dword [ebx + 0x28]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.005e1315
mov edx, dword [ebp - 0x2c]
push 0x3f
push edx
call fcn.005c4b80
add esp, 8
test eax, eax
je 0x5959de
jmp 0x5959db
test eax, eax
jne 0x5959bd
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x5959bd
lea edx, [eax + 1]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x5959bd
push edx
lea ecx, [ebp - 0x2c]
call fcn.005e1315
jmp 0x5959de
mov ecx, dword [ebx + 0x28]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.005e1315
mov edx, dword [ebp - 0x2c]
push 0x3f
push edx
call fcn.005c4b80
add esp, 8
test eax, eax
je 0x5959de
mov byte [eax], 0
mov eax, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x5c]
mov esi, dword [eax + 0x168]
call fcn.00401070
test ebx, ebx
je 0x595abf
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x595abf
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push eax
push eax
push 0xffffffffffffffff
push ebx
push eax
push esi
call edi
test eax, eax
mov dword [ebp - 0x54], eax
je 0x595abf
lea ecx, [eax + eax + 2]
push ecx
call fcn.005dd58d
add esp, 4
mov dword [ebp - 0x5c], eax
test eax, eax
je 0x595ac6
mov edx, dword [ebp - 0x54]
push edx
push eax
push 0xffffffffffffffff
push ebx
push 0
push esi
call edi
mov dword [ebp - 0x54], eax
jmp 0x595abf
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x5c]
mov esi, dword [eax + 0x168]
mov ebx, dword [eax + 0x28]
call fcn.00401070
test ebx, ebx
je 0x595ab0
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x595ab0
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push eax
push eax
push 0xffffffffffffffff
push ebx
push eax
push esi
call edi
test eax, eax
mov dword [ebp - 0x54], eax
je 0x595ab0
lea eax, [eax + eax + 2]
push eax
call fcn.005dd58d
add esp, 4
mov dword [ebp - 0x5c], eax
test eax, eax
je 0x595ab0
mov ecx, dword [ebp - 0x54]
push ecx
push eax
push 0xffffffffffffffff
push ebx
push 0
push esi
call edi
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x30]
lea ecx, [ebp - 0x2c]
mov eax, dword [edx + 0x28]
push eax
call fcn.005e1315
mov eax, dword [ebp - 0x5c]
test eax, eax
jne 0x595ac9
lea eax, [ebp - 0x58]
push eax
call fcn.005c4b4a
add esp, 4
cmp eax, 0x7d0
jae 0x595af8
mov ecx, dword [ebp + 0x10]
push 0
push 1
push ecx
mov ecx, dword [ebp - 0x30]
lea edx, [ebp - 0x5c]
push edx
mov edx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x168]
push eax
push edx
call fcn.005954c0
mov eax, dword [ebp - 0x5c]
test eax, eax
jne 0x595b02
lea eax, [ebp - 0x58]
push 0x3d
push eax
call fcn.005c4a9a
mov ebx, eax
mov eax, dword [ebp - 0x5c]
add esp, 8
test eax, eax
jne 0x595b19
lea eax, [ebp - 0x58]
push 0x3f
push eax
call fcn.005c4a9a
mov edi, eax
mov eax, dword [ebp - 0x5c]
add esp, 8
test eax, eax
jne 0x595b30
lea eax, [ebp - 0x58]
push 0x2f
push eax
call fcn.005c4a9a
add esp, 8
cmp edi, ebx
jae 0x595b4b
cmp ebx, eax
jbe 0x595b49
add ebx, 2
push ebx
jmp 0x595b5f
cmp edi, ebx
jbe 0x595b57
cmp edi, eax
jbe 0x595b57
add edi, 2
push edi
jmp 0x595b5f
test eax, eax
je 0x595b67
add eax, 2
push eax
lea ecx, [ebp - 0x5c]
call fcn.00401f60
mov eax, dword [ebp - 0x5c]
test eax, eax
jne 0x595b71
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x20]
call fcn.00401f60
mov eax, dword [ebp - 0x5c]
test eax, eax
jne 0x595b84
lea eax, [ebp - 0x58]
push eax
call fcn.005c4b4a
add esp, 4
test eax, eax
jne 0x595e3e
mov esi, dword [ebp - 0x30]
mov ebx, 1
mov edx, dword [esi + 0x24]
test edx, edx
je 0x595cc4
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, ebx
jbe 0x595cc4
mov eax, dword [0x6ca27c]
mov dword [ebp - 0x24], eax
push edx
lea ecx, [ebp - 0x24]
push 0x69ffbc
push ecx
mov byte [ebp - 4], 0xa
call fcn.005d9fbb
mov edx, dword [ebp - 0x24]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [ecx + edx - 1], 0x2f
jne 0x595bfd
dec ecx
push 0
push ecx
lea ecx, [ebp - 0x24]
call fcn.005e15f8
mov edx, dword [ebp - 0x24]
push 0x2f
push edx
call fcn.005c5b00
add esp, 8
test eax, eax
je 0x595cb0
inc eax
push 0
push eax
lea ecx, [ebp - 0x20]
call fcn.00402890
mov edx, 0x6a7c00
test edx, edx
je 0x595cae
push edx
call fcn.005c4b4a
add esp, 4
test eax, eax
je 0x595cae
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x595c4a
push eax
call fcn.005c4b4a
add esp, 4
mov edi, eax
jmp 0x595c4c
xor edi, edi
push 0x6a7c00
call fcn.005c4b4a
add eax, edi
lea eax, [eax + eax + 2]
push eax
call fcn.005dd58d
mov edi, eax
add esp, 8
test edi, edi
je 0x595cae
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x595c89
push eax
push edi
call fcn.005c4cea
push 0x6a7c00
push edi
call fcn.005c4cc0
add esp, 0x10
jmp 0x595c97
push 0x6a7c00
push edi
call fcn.005c4cea
add esp, 8
lea ecx, [ebp - 0x20]
call fcn.00401070
push edi
mov dword [ebp - 0x20], edi
call fcn.005c4b4a
add esp, 4
mov dword [ebp - 0x18], eax
xor ebx, ebx
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
call fcn.005e118c
test ebx, ebx
je 0x595e1a
mov eax, dword [esi + 0x20]
test eax, eax
je 0x595e1a
xor esi, esi
lea ecx, [ebp - 0x48]
push esi
push eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x40], esi
mov word [ebp - 0x44], si
call fcn.00402890
mov eax, dword [ebp - 0x48]
mov byte [ebp - 4], 0xb
cmp eax, esi
jne 0x595cf3
lea eax, [ebp - 0x44]
push 0x2e
push eax
call fcn.005c4a9a
add esp, 8
cmp eax, esi
je 0x595e0e
xor esi, esi
mov word [eax], si
mov edi, dword [ebp - 0x48]
cmp edi, esi
je 0x595d39
push edi
call fcn.005c4b4a
add esp, 4
lea eax, [edi + eax*2]
cmp edi, eax
jae 0x595d32
cmp word [edi], 0x2e
jne 0x595d2d
mov word [edi], 0x5f
add edi, 2
jmp 0x595d1e
mov eax, dword [ebp - 0x48]
cmp eax, esi
jne 0x595d3c
lea eax, [ebp - 0x44]
mov ecx, str._s_default.html
test ecx, ecx
je 0x595e0e
cmp eax, esi
je 0x595e0e
push eax
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x34], esi
mov word [ebp - 0x38], si
call fcn.00401f60
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0xc
call fcn.00401070
push str._s_default.html
lea ecx, [ebp - 0x98]
call fcn.00401ed0
mov edi, dword [ebp - 0x90]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xd
call fcn.00401f50
push eax
call fcn.005c4b4a
lea ebx, [eax + edi + 2]
lea edi, [ebx + ebx]
push edi
call fcn.005dd58d
mov edx, eax
add esp, 8
cmp edx, esi
mov dword [ebp - 0x20], edx
je 0x595df3
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x3c]
call fcn.00401f50
push eax
lea ecx, [ebp - 0x98]
call fcn.00401f50
push eax
mov eax, dword [ebp - 0x20]
push ebx
push eax
call fcn.005c4ada
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.005c4b4a
add esp, 0x14
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xc
call fcn.00401070
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xb
call fcn.00401070
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 3
call fcn.00401070
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x595e24
lea eax, [ebp - 0x1c]
push eax
call fcn.005c4b4a
add esp, 4
test eax, eax
jne 0x595e3e
push str.default.html
lea ecx, [ebp - 0x20]
call fcn.00401f60
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x595e6a
push eax
mov edi, eax
call fcn.005c4b4a
add esp, 4
lea eax, [edi + eax*2]
cmp edi, eax
jae 0x595e67
cmp word [edi], 0x3a
jne 0x595e62
mov word [edi], 0x2d
add edi, 2
jmp 0x595e53
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp + 0x10]
test cl, cl
je 0x595e9e
test eax, eax
je 0x595fc5
push eax
mov edi, eax
call fcn.005c4b4a
add esp, 4
lea eax, [edi + eax*2]
cmp edi, eax
jae 0x595e9b
cmp word [edi], 0x2a
jne 0x595e96
mov word [edi], 0x2d
add edi, 2
jmp 0x595e87
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x595fc5
push eax
mov edi, eax
call fcn.005c4b4a
add esp, 4
lea eax, [edi + eax*2]
cmp edi, eax
jae 0x595ec8
cmp word [edi], 0x3f
jne 0x595ec3
mov word [edi], 0x2d
add edi, 2
jmp 0x595eb4
mov edi, dword [ebp - 0x20]
test edi, edi
je 0x595fc5
push edi
call fcn.005c4b4a
add esp, 4
lea eax, [edi + eax*2]
cmp edi, eax
jae 0x595ef3
cmp word [edi], 0x7c
jne 0x595eee
mov word [edi], 0x2d
add edi, 2
jmp 0x595edf
mov edi, dword [ebp - 0x20]
test edi, edi
je 0x595fc5
push edi
call fcn.005c4b4a
add esp, 4
lea eax, [edi + eax*2]
cmp edi, eax
jae 0x595f1e
cmp word [edi], 0x3c
jne 0x595f19
mov word [edi], 0x2d
add edi, 2
jmp 0x595f0a
mov edi, dword [ebp - 0x20]
test edi, edi
je 0x595fc5
push edi
call fcn.005c4b4a
add esp, 4
lea eax, [edi + eax*2]
cmp edi, eax
jae 0x595f49
cmp word [edi], 0x3e
jne 0x595f44
mov word [edi], 0x2d
add edi, 2
jmp 0x595f35
mov edi, dword [ebp - 0x20]
test edi, edi
je 0x595fc5
push edi
call fcn.005c4b4a
add esp, 4
lea eax, [edi + eax*2]
cmp edi, eax
jae 0x595f70
cmp word [edi], 0x22
jne 0x595f6b
mov word [edi], 0x2d
add edi, 2
jmp 0x595f5c
mov edi, dword [ebp - 0x20]
test edi, edi
je 0x595fc5
push edi
call fcn.005c4b4a
add esp, 4
lea eax, [edi + eax*2]
cmp edi, eax
jae 0x595f97
cmp word [edi], 0x25
jne 0x595f92
mov word [edi], 0x2d
add edi, 2
jmp 0x595f83
mov edi, dword [ebp - 0x20]
test edi, edi
je 0x595fc5
push edi
call fcn.005c4b4a
add esp, 4
lea eax, [edi + eax*2]
cmp edi, eax
jae 0x595fbe
cmp word [edi], 0x5c
jne 0x595fb9
mov word [edi], 0x2d
add edi, 2
jmp 0x595faa
mov edi, dword [ebp - 0x20]
test edi, edi
jne 0x595fc8
lea edi, [ebp - 0x1c]
push edi
call fcn.005c4b4a
add esp, 4
xor ecx, ecx
cmp ecx, eax
jge 0x595fe7
cmp word [edi + ecx*2], 0x20
jae 0x595fe4
mov word [edi + ecx*2], 0x2d
inc ecx
jmp 0x595fd3
mov eax, dword [0x6cee64]
test eax, eax
jne 0x596982
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x595ffe
lea eax, [ebp - 0x1c]
push 0x202a
push eax
call fcn.005c4fbf
add esp, 8
test eax, eax
jne 0x596030
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x59601a
lea eax, [ebp - 0x1c]
push 0x202d
push eax
call fcn.005c4fbf
add esp, 8
test eax, eax
je 0x5965a6
mov edx, 0x6a3c24
test edx, edx
je 0x596202
mov eax, 0x6ce7cc
test eax, eax
je 0x596202
push eax
push edx
call fcn.005c505f
add esp, 8
test eax, eax
je 0x596202
mov ecx, dword [ebp - 0x20]
push 0x6a3c24
push ecx
call fcn.005c53a5
add esp, 8
mov edi, eax
xor ebx, ebx
test edi, edi
je 0x596095
push 0x6a3c24
inc ebx
call fcn.005c4b4a
lea eax, [edi + eax*2]
push 0x6a3c24
push eax
call fcn.005c53a5
add esp, 0xc
mov edi, eax
jmp 0x596071
test ebx, ebx
je 0x596202
mov edx, dword [ebp - 0x20]
xor eax, eax
push edx
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x40], eax
mov word [ebp - 0x44], ax
call fcn.00401f60
push 0x6a3c24
mov byte [ebp - 4], 0xe
call fcn.005c4b4a
push 0x6ce7cc
mov esi, eax
call fcn.005c4b4a
add esp, 8
cmp eax, esi
jbe 0x596126
lea ecx, [ebp - 0x20]
call fcn.00401070
lea ecx, [ebp - 0x48]
call fcn.00401f50
push eax
call fcn.005c4b4a
push 0x6a3c24
mov esi, eax
call fcn.005c4b4a
push 0x6ce7cc
mov edi, eax
call fcn.005c4b4a
sub eax, edi
imul eax, ebx
add esi, eax
lea eax, [esi + esi + 2]
push eax
call fcn.005dd58d
mov ebx, eax
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x20], ebx
jne 0x596129
jmp 0x5961f6
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0x48]
call fcn.00401f50
push 0x6a3c24
push eax
mov dword [ebp - 0x24], eax
call fcn.005c53a5
add esp, 8
test eax, eax
mov dword [ebp - 0x14], eax
je 0x5961b9
mov esi, dword [ebp - 0x24]
mov edi, ebx
sub eax, esi
push 0x6ce7cc
sar eax, 1
shl eax, 1
mov ecx, eax
add ebx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
mov ecx, eax
mov esi, 0x6ce7cc
shl ecx, 1
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x6ce7cc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
push 0x6a3c24
lea ebx, [ebx + eax*2]
call fcn.005c4b4a
mov ecx, dword [ebp - 0x14]
push 0x6a3c24
lea eax, [ecx + eax*2]
push eax
mov dword [ebp - 0x24], eax
call fcn.005c53a5
add esp, 0x14
jmp 0x596142
mov esi, dword [ebp - 0x24]
push esi
call fcn.005c4b4a
mov ecx, eax
mov edi, ebx
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x24]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
lea ebx, [ebx + eax*2]
mov word [ebx], 0
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.005c4b4a
add esp, 0xc
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 3
call fcn.00401070
mov edx, 0x6a3c20
test edx, edx
je 0x5963d4
mov eax, 0x6ce7cc
test eax, eax
je 0x5963d4
push eax
push edx
call fcn.005c505f
add esp, 8
test eax, eax
je 0x5963d4
mov ecx, dword [ebp - 0x20]
push 0x6a3c20
push ecx
call fcn.005c53a5
add esp, 8
xor esi, esi
mov edi, eax
xor ebx, ebx
cmp edi, esi
je 0x596269
push 0x6a3c20
inc ebx
call fcn.005c4b4a
lea eax, [edi + eax*2]
push 0x6a3c20
push eax
call fcn.005c53a5
add esp, 0xc
mov edi, eax
jmp 0x596245
cmp ebx, esi
je 0x5963d4
mov edx, dword [ebp - 0x20]
lea ecx, [ebp - 0x48]
push edx
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x40], esi
mov word [ebp - 0x44], si
call fcn.00401f60
push 0x6a3c20
mov byte [ebp - 4], 0xf
call fcn.005c4b4a
push 0x6ce7cc
mov esi, eax
call fcn.005c4b4a
add esp, 8
cmp eax, esi
jbe 0x5962f8
lea ecx, [ebp - 0x20]
call fcn.00401070
lea ecx, [ebp - 0x48]
call fcn.00401f50
push eax
call fcn.005c4b4a
push 0x6a3c20
mov esi, eax
call fcn.005c4b4a
push 0x6ce7cc
mov edi, eax
call fcn.005c4b4a
sub eax, edi
imul eax, ebx
add esi, eax
lea eax, [esi + esi + 2]
push eax
call fcn.005dd58d
mov ebx, eax
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x20], ebx
jne 0x5962fb
jmp 0x5963c8
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0x48]
call fcn.00401f50
push 0x6a3c20
push eax
mov dword [ebp - 0x24], eax
call fcn.005c53a5
add esp, 8
test eax, eax
mov dword [ebp - 0x14], eax
je 0x59638b
mov esi, dword [ebp - 0x24]
mov edi, ebx
sub eax, esi
push 0x6ce7cc
sar eax, 1
shl eax, 1
mov ecx, eax
add ebx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
mov ecx, eax
mov esi, 0x6ce7cc
shl ecx, 1
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x6ce7cc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
push 0x6a3c20
lea ebx, [ebx + eax*2]
call fcn.005c4b4a
mov ecx, dword [ebp - 0x14]
push 0x6a3c20
lea eax, [ecx + eax*2]
push eax
mov dword [ebp - 0x24], eax
call fcn.005c53a5
add esp, 0x14
jmp 0x596314
mov esi, dword [ebp - 0x24]
push esi
call fcn.005c4b4a
mov ecx, eax
mov edi, ebx
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x24]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
lea ebx, [ebx + eax*2]
mov word [ebx], 0
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.005c4b4a
add esp, 0xc
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 3
call fcn.00401070
mov edx, 0x6a3c1c
test edx, edx
je 0x5965a6
mov eax, 0x6ce7cc
test eax, eax
je 0x5965a6
push eax
push edx
call fcn.005c505f
add esp, 8
test eax, eax
je 0x5965a6
mov ecx, dword [ebp - 0x20]
push 0x6a3c1c
push ecx
call fcn.005c53a5
add esp, 8
mov esi, eax
xor edi, edi
test esi, esi
je 0x596439
push 0x6a3c1c
inc edi
call fcn.005c4b4a
lea eax, [esi + eax*2]
push 0x6a3c1c
push eax
call fcn.005c53a5
add esp, 0xc
mov esi, eax
jmp 0x596415
test edi, edi
je 0x5965a6
mov edx, dword [ebp - 0x20]
xor eax, eax
push edx
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x40], eax
mov word [ebp - 0x44], ax
call fcn.00401f60
push 0x6a3c1c
mov byte [ebp - 4], 0x10
call fcn.005c4b4a
push 0x6ce7cc
mov esi, eax
call fcn.005c4b4a
add esp, 8
cmp eax, esi
jbe 0x5964ca
lea ecx, [ebp - 0x20]
call fcn.00401070
lea ecx, [ebp - 0x48]
call fcn.00401f50
push eax
call fcn.005c4b4a
push 0x6a3c1c
mov esi, eax
call fcn.005c4b4a
push 0x6ce7cc
mov ebx, eax
call fcn.005c4b4a
sub eax, ebx
imul eax, edi
add esi, eax
lea eax, [esi + esi + 2]
push eax
call fcn.005dd58d
mov ebx, eax
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x20], ebx
jne 0x5964cd
jmp 0x59659a
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0x48]
call fcn.00401f50
push 0x6a3c1c
push eax
mov dword [ebp - 0x24], eax
call fcn.005c53a5
add esp, 8
test eax, eax
mov dword [ebp - 0x14], eax
je 0x59655d
mov esi, dword [ebp - 0x24]
mov edi, ebx
sub eax, esi
push 0x6ce7cc
sar eax, 1
shl eax, 1
mov ecx, eax
add ebx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
mov ecx, eax
mov esi, 0x6ce7cc
shl ecx, 1
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x6ce7cc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
push 0x6a3c1c
lea ebx, [ebx + eax*2]
call fcn.005c4b4a
mov ecx, dword [ebp - 0x14]
push 0x6a3c1c
lea eax, [ecx + eax*2]
push eax
mov dword [ebp - 0x24], eax
call fcn.005c53a5
add esp, 0x14
jmp 0x5964e6
mov esi, dword [ebp - 0x24]
push esi
call fcn.005c4b4a
mov ecx, eax
mov edi, ebx
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x24]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
lea ebx, [ebx + eax*2]
mov word [ebx], 0
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.005c4b4a
add esp, 0xc
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 3
call fcn.00401070
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x5965b0
lea eax, [ebp - 0x1c]
push 0x200e
push eax
call fcn.005c4fbf
add esp, 8
test eax, eax
je 0x596794
mov edx, 0x6a3c18
test edx, edx
je 0x596794
mov eax, 0x6ce7cc
test eax, eax
je 0x596794
push eax
push edx
call fcn.005c505f
add esp, 8
test eax, eax
je 0x596794
mov ecx, dword [ebp - 0x20]
push 0x6a3c18
push ecx
call fcn.005c53a5
add esp, 8
mov esi, eax
xor edi, edi
test esi, esi
je 0x59662b
push 0x6a3c18
inc edi
call fcn.005c4b4a
lea eax, [esi + eax*2]
push 0x6a3c18
push eax
call fcn.005c53a5
add esp, 0xc
mov esi, eax
jmp 0x596607
test edi, edi
je 0x596794
mov edx, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
push edx
call fcn.0040d680
push 0x6a3c18
mov byte [ebp - 4], 0x11
call fcn.005c4b4a
push 0x6ce7cc
mov esi, eax
call fcn.005c4b4a
add esp, 8
cmp eax, esi
jbe 0x5966b8
lea ecx, [ebp - 0x20]
call fcn.00401070
mov esi, dword [ebp - 0x3c]
test esi, esi
jne 0x596672
lea esi, [ebp - 0x38]
push 0x6a3c18
call fcn.005c4b4a
push 0x6ce7cc
mov ebx, eax
call fcn.005c4b4a
mov edx, eax
push esi
sub edx, ebx
imul edx, edi
mov dword [ebp - 0x50], edx
call fcn.005c4b4a
mov ecx, dword [ebp - 0x50]
add ecx, eax
lea edx, [ecx + ecx + 2]
push edx
call fcn.005dd58d
mov ebx, eax
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x20], ebx
jne 0x5966bb
jmp 0x596788
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
call fcn.00401f50
push 0x6a3c18
push eax
mov dword [ebp - 0x24], eax
call fcn.005c53a5
add esp, 8
test eax, eax
mov dword [ebp - 0x14], eax
je 0x59674b
mov esi, dword [ebp - 0x24]
mov edi, ebx
sub eax, esi
push 0x6ce7cc
sar eax, 1
shl eax, 1
mov ecx, eax
add ebx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
mov ecx, eax
mov esi, 0x6ce7cc
shl ecx, 1
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x6ce7cc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
push 0x6a3c18
lea ebx, [ebx + eax*2]
call fcn.005c4b4a
mov ecx, dword [ebp - 0x14]
push 0x6a3c18
lea eax, [ecx + eax*2]
push eax
mov dword [ebp - 0x24], eax
call fcn.005c53a5
add esp, 0x14
jmp 0x5966d4
mov esi, dword [ebp - 0x24]
push esi
call fcn.005c4b4a
mov ecx, eax
mov edi, ebx
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x24]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
lea ebx, [ebx + eax*2]
mov word [ebx], 0
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.005c4b4a
add esp, 0xc
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 3
call fcn.00401070
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x59679e
lea eax, [ebp - 0x1c]
push 0x200f
push eax
call fcn.005c4fbf
add esp, 8
test eax, eax
je 0x596982
mov edx, 0x6a3c14
test edx, edx
je 0x596982
mov eax, 0x6ce7cc
test eax, eax
je 0x596982
push eax
push edx
call fcn.005c505f
add esp, 8
test eax, eax
je 0x596982
mov ecx, dword [ebp - 0x20]
push 0x6a3c14
push ecx
call fcn.005c53a5
add esp, 8
mov esi, eax
xor edi, edi
test esi, esi
je 0x596819
push 0x6a3c14
inc edi
call fcn.005c4b4a
lea eax, [esi + eax*2]
push 0x6a3c14
push eax
call fcn.005c53a5
add esp, 0xc
mov esi, eax
jmp 0x5967f5
test edi, edi
je 0x596982
mov edx, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
push edx
call fcn.0040d680
push 0x6a3c14
mov byte [ebp - 4], 0x12
call fcn.005c4b4a
push 0x6ce7cc
mov esi, eax
call fcn.005c4b4a
add esp, 8
cmp eax, esi
jbe 0x5968a6
lea ecx, [ebp - 0x20]
call fcn.00401070
mov esi, dword [ebp - 0x3c]
test esi, esi
jne 0x596860
lea esi, [ebp - 0x38]
push 0x6a3c14
call fcn.005c4b4a
push 0x6ce7cc
mov ebx, eax
call fcn.005c4b4a
mov edx, eax
push esi
sub edx, ebx
imul edx, edi
mov dword [ebp - 0x50], edx
call fcn.005c4b4a
mov ecx, dword [ebp - 0x50]
add ecx, eax
lea edx, [ecx + ecx + 2]
push edx
call fcn.005dd58d
mov ebx, eax
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x20], ebx
jne 0x5968a9
jmp 0x596976
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
call fcn.00401f50
push 0x6a3c14
push eax
mov dword [ebp - 0x24], eax
call fcn.005c53a5
add esp, 8
test eax, eax
mov dword [ebp - 0x14], eax
je 0x596939
mov esi, dword [ebp - 0x24]
mov edi, ebx
sub eax, esi
push 0x6ce7cc
sar eax, 1
shl eax, 1
mov ecx, eax
add ebx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
mov ecx, eax
mov esi, 0x6ce7cc
shl ecx, 1
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x6ce7cc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
push 0x6a3c14
lea ebx, [ebx + eax*2]
call fcn.005c4b4a
mov ecx, dword [ebp - 0x14]
push 0x6a3c14
lea eax, [ecx + eax*2]
push eax
mov dword [ebp - 0x24], eax
call fcn.005c53a5
add esp, 0x14
jmp 0x5968c2
mov esi, dword [ebp - 0x24]
push esi
call fcn.005c4b4a
mov ecx, eax
mov edi, ebx
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x24]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
lea ebx, [ebx + eax*2]
mov word [ebx], 0
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.005c4b4a
add esp, 0xc
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 3
call fcn.00401070
mov edi, dword [ebp - 0x30]
push 0x3f
mov edx, dword [edi + 0x28]
push edx
call fcn.005c4b80
mov esi, eax
mov eax, dword [edi + 0x28]
push 0x2e
push eax
call fcn.005c4b80
mov ebx, eax
mov eax, dword [ebp - 0x20]
xor edi, edi
add esp, 0x10
cmp eax, edi
mov dword [ebp - 0x4c], ebx
jne 0x5969b1
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x78], edi
mov word [ebp - 0x7c], di
call fcn.00401f60
mov eax, dword [ebp - 0x80]
mov byte [ebp - 4], 0x13
cmp eax, edi
jne 0x5969d2
lea eax, [ebp - 0x7c]
push 0x2e
push eax
call fcn.005c4a9a
mov edi, eax
add esp, 8
test edi, edi
je 0x5969fa
mov word [edi], 0
add edi, 2
push edi
call fcn.005c4b4a
add esp, 4
test eax, eax
jne 0x5969fa
xor edi, edi
test esi, esi
je 0x5979b4
test ebx, ebx
je 0x597921
cmp ebx, esi
ja 0x597921
mov ecx, dword [ebp - 0x4c]
lea ebx, [ecx + 1]
cmp ebx, esi
je 0x597921
test edi, edi
jne 0x5979b4
mov edx, dword [ebp - 0x30]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [edx + 0x28]
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x597764
mov edi, esi
sub edi, edx
inc edi
push edi
call fcn.005dd58d
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [ebp - 0x60], ebx
je 0x5979b4
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp - 0x30]
mov ecx, esi
mov eax, dword [eax + 0x28]
sub ecx, eax
push ecx
push eax
push ebx
call fcn.005c50a0
add esp, 0xc
lea ecx, [ebp - 0x20]
push 0
push ebx
call fcn.00402890
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x30]
push 0
push 1
push edx
mov edx, dword [ecx + 0x168]
lea eax, [ebp - 0x20]
push eax
push edx
push ebx
call fcn.005954c0
push 0x2e
push ebx
call fcn.005c5b00
mov edi, eax
add esp, 8
test edi, edi
mov dword [ebp - 0x4c], edi
je 0x5979ab
push str..asp
push edi
call fcn.005c6000
add esp, 8
test eax, eax
je 0x596b0f
push str..jsp
push edi
call fcn.005c6000
add esp, 8
test eax, eax
je 0x596b0f
push str..cgi
push edi
call fcn.005c6000
add esp, 8
test eax, eax
je 0x596b0f
push str..php
push edi
call fcn.005c6000
add esp, 8
test eax, eax
jne 0x5979ab
mov edi, dword [ebp - 0x30]
push 0x3d
mov eax, dword [edi + 0x28]
push eax
call fcn.005c5b00
mov edi, dword [edi + 0x28]
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 8
mov dword [ebp - 0x50], edi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, esi
jbe 0x5979ab
mov eax, dword [ebp - 0x50]
cmp byte [ecx + eax - 1], 0x2e
je 0x5979ab
inc edx
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0xa
jle 0x596b5e
lea edx, [edx + ecx - 0xa]
mov eax, dword [ebp - 0x4c]
mov byte [eax], 0
mov ecx, dword [0x6ca27c]
mov dword [ebp - 0x64], ecx
inc eax
mov byte [ebp - 4], 0x14
push eax
push edx
push ebx
lea edx, [ebp - 0x64]
push str._s__s._s
push edx
call fcn.005d9fbb
mov eax, dword [ebp - 0x64]
add esp, 0x14
lea ecx, [ebp - 0x20]
push 0
push eax
call fcn.00402890
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x596bc0
push eax
mov esi, eax
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x596bbd
cmp word [esi], 0x3a
jne 0x596bb8
mov word [esi], 0x2d
add esi, 2
jmp 0x596ba9
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp + 0x10]
test cl, cl
je 0x596bf4
test eax, eax
je 0x596dc7
push eax
mov esi, eax
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x596bf1
cmp word [esi], 0x2a
jne 0x596bec
mov word [esi], 0x2d
add esi, 2
jmp 0x596bdd
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x596dc7
push eax
mov esi, eax
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x596c1e
cmp word [esi], 0x3f
jne 0x596c19
mov word [esi], 0x2d
add esi, 2
jmp 0x596c0a
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x596dc7
push esi
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x596c49
cmp word [esi], 0x7c
jne 0x596c44
mov word [esi], 0x2d
add esi, 2
jmp 0x596c35
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x596dc7
push esi
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x596c74
cmp word [esi], 0x3c
jne 0x596c6f
mov word [esi], 0x2d
add esi, 2
jmp 0x596c60
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x596dc7
push esi
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x596c9f
cmp word [esi], 0x3e
jne 0x596c9a
mov word [esi], 0x2d
add esi, 2
jmp 0x596c8b
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x596dc7
push esi
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x596cca
cmp word [esi], 0x22
jne 0x596cc5
mov word [esi], 0x2d
add esi, 2
jmp 0x596cb6
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x596dc7
push esi
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x596cf5
cmp word [esi], 0x25
jne 0x596cf0
mov word [esi], 0x2d
add esi, 2
jmp 0x596ce1
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x596dc7
push esi
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x596d20
cmp word [esi], 0x5c
jne 0x596d1b
mov word [esi], 0x2d
add esi, 2
jmp 0x596d0c
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x596dc7
push esi
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x596d4b
cmp word [esi], 0x2f
jne 0x596d46
mov word [esi], 0x5f
add esi, 2
jmp 0x596d37
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x596dc7
push esi
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x596d72
cmp word [esi], 0x27
jne 0x596d6d
mov word [esi], 0x5f
add esi, 2
jmp 0x596d5e
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x596dc7
push esi
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x596d99
cmp word [esi], 0x2c
jne 0x596d94
mov word [esi], 0x5f
add esi, 2
jmp 0x596d85
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x596dc7
push esi
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x596dc0
cmp word [esi], 0x3b
jne 0x596dbb
mov word [esi], 0x5f
add esi, 2
jmp 0x596dac
mov esi, dword [ebp - 0x20]
test esi, esi
jne 0x596dca
lea esi, [ebp - 0x1c]
push esi
call fcn.005c4b4a
add esp, 4
xor ecx, ecx
cmp ecx, eax
jge 0x596de9
cmp word [esi + ecx*2], 0x20
jae 0x596de6
mov word [esi + ecx*2], 0x2d
inc ecx
jmp 0x596dd5
mov eax, dword [0x6cee64]
test eax, eax
jne 0x597750
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x596e00
lea eax, [ebp - 0x1c]
push 0x202a
push eax
call fcn.005c4fbf
add esp, 8
test eax, eax
jne 0x596e32
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x596e1c
lea eax, [ebp - 0x1c]
push 0x202d
push eax
call fcn.005c4fbf
add esp, 8
test eax, eax
je 0x597384
mov ecx, 0x6a3c24
test ecx, ecx
je 0x596ff8
mov edx, 0x6ce7cc
test edx, edx
je 0x596ff8
push edx
push ecx
call fcn.005c505f
add esp, 8
test eax, eax
je 0x596ff8
mov eax, dword [ebp - 0x20]
push 0x6a3c24
push eax
call fcn.005c53a5
add esp, 8
mov esi, eax
xor edi, edi
test esi, esi
je 0x596e97
push 0x6a3c24
inc edi
call fcn.005c4b4a
lea eax, [esi + eax*2]
push 0x6a3c24
push eax
call fcn.005c53a5
add esp, 0xc
mov esi, eax
jmp 0x596e73
test edi, edi
je 0x596ff8
mov ecx, dword [ebp - 0x20]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.0040d680
push 0x6a3c24
mov byte [ebp - 4], 0x15
call fcn.005c4b4a
push 0x6ce7cc
mov esi, eax
call fcn.005c4b4a
add esp, 8
cmp eax, esi
jbe 0x596f1c
lea ecx, [ebp - 0x20]
call fcn.00401070
lea ecx, [ebp - 0x3c]
call fcn.00401f50
push eax
call fcn.005c4b4a
push 0x6a3c24
mov esi, eax
call fcn.005c4b4a
push 0x6ce7cc
mov ebx, eax
call fcn.005c4b4a
sub eax, ebx
imul eax, edi
add esi, eax
lea edx, [esi + esi + 2]
push edx
call fcn.005dd58d
mov ebx, eax
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x20], ebx
jne 0x596f1f
jmp 0x596fec
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
call fcn.00401f50
push 0x6a3c24
push eax
mov dword [ebp - 0x14], eax
call fcn.005c53a5
add esp, 8
test eax, eax
mov dword [ebp + 0x10], eax
je 0x596faf
mov esi, dword [ebp - 0x14]
mov edi, ebx
sub eax, esi
push 0x6ce7cc
sar eax, 1
shl eax, 1
mov ecx, eax
add ebx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
mov ecx, eax
mov esi, 0x6ce7cc
shl ecx, 1
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x6ce7cc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
push 0x6a3c24
lea ebx, [ebx + eax*2]
call fcn.005c4b4a
mov ecx, dword [ebp + 0x10]
push 0x6a3c24
lea eax, [ecx + eax*2]
push eax
mov dword [ebp - 0x14], eax
call fcn.005c53a5
add esp, 0x14
jmp 0x596f38
mov esi, dword [ebp - 0x14]
push esi
call fcn.005c4b4a
mov ecx, eax
mov edi, ebx
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
lea ebx, [ebx + eax*2]
mov word [ebx], 0
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.005c4b4a
add esp, 0xc
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x14
call fcn.00401070
mov edx, 0x6a3c20
test edx, edx
je 0x5971be
mov eax, 0x6ce7cc
test eax, eax
je 0x5971be
push eax
push edx
call fcn.005c505f
add esp, 8
test eax, eax
je 0x5971be
mov ecx, dword [ebp - 0x20]
push 0x6a3c20
push ecx
call fcn.005c53a5
add esp, 8
mov esi, eax
xor edi, edi
test esi, esi
je 0x59705d
push 0x6a3c20
inc edi
call fcn.005c4b4a
lea eax, [esi + eax*2]
push 0x6a3c20
push eax
call fcn.005c53a5
add esp, 0xc
mov esi, eax
jmp 0x597039
test edi, edi
je 0x5971be
mov edx, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
push edx
call fcn.0040d680
push 0x6a3c20
mov byte [ebp - 4], 0x16
call fcn.005c4b4a
push 0x6ce7cc
mov esi, eax
call fcn.005c4b4a
add esp, 8
cmp eax, esi
jbe 0x5970e2
lea ecx, [ebp - 0x20]
call fcn.00401070
lea ecx, [ebp - 0x3c]
call fcn.00401f50
push eax
call fcn.005c4b4a
push 0x6a3c20
mov esi, eax
call fcn.005c4b4a
push 0x6ce7cc
mov ebx, eax
call fcn.005c4b4a
sub eax, ebx
imul eax, edi
add esi, eax
lea eax, [esi + esi + 2]
push eax
call fcn.005dd58d
mov ebx, eax
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x20], ebx
jne 0x5970e5
jmp 0x5971b2
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
call fcn.00401f50
push 0x6a3c20
push eax
mov dword [ebp - 0x14], eax
call fcn.005c53a5
add esp, 8
test eax, eax
mov dword [ebp + 0x10], eax
je 0x597175
mov esi, dword [ebp - 0x14]
mov edi, ebx
sub eax, esi
push 0x6ce7cc
sar eax, 1
shl eax, 1
mov ecx, eax
add ebx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
mov ecx, eax
mov esi, 0x6ce7cc
shl ecx, 1
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x6ce7cc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
push 0x6a3c20
lea ebx, [ebx + eax*2]
call fcn.005c4b4a
mov ecx, dword [ebp + 0x10]
push 0x6a3c20
lea eax, [ecx + eax*2]
push eax
mov dword [ebp - 0x14], eax
call fcn.005c53a5
add esp, 0x14
jmp 0x5970fe
mov esi, dword [ebp - 0x14]
push esi
call fcn.005c4b4a
mov ecx, eax
mov edi, ebx
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
lea ebx, [ebx + eax*2]
mov word [ebx], 0
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.005c4b4a
add esp, 0xc
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x14
call fcn.00401070
mov edx, 0x6a3c1c
test edx, edx
je 0x597384
mov eax, 0x6ce7cc
test eax, eax
je 0x597384
push eax
push edx
call fcn.005c505f
add esp, 8
test eax, eax
je 0x597384
mov ecx, dword [ebp - 0x20]
push 0x6a3c1c
push ecx
call fcn.005c53a5
add esp, 8
mov esi, eax
xor edi, edi
test esi, esi
je 0x597223
push 0x6a3c1c
inc edi
call fcn.005c4b4a
lea eax, [esi + eax*2]
push 0x6a3c1c
push eax
call fcn.005c53a5
add esp, 0xc
mov esi, eax
jmp 0x5971ff
test edi, edi
je 0x597384
mov edx, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
push edx
call fcn.0040d680
push 0x6a3c1c
mov byte [ebp - 4], 0x17
call fcn.005c4b4a
push 0x6ce7cc
mov esi, eax
call fcn.005c4b4a
add esp, 8
cmp eax, esi
jbe 0x5972a8
lea ecx, [ebp - 0x20]
call fcn.00401070
lea ecx, [ebp - 0x3c]
call fcn.00401f50
push eax
call fcn.005c4b4a
push 0x6a3c1c
mov esi, eax
call fcn.005c4b4a
push 0x6ce7cc
mov ebx, eax
call fcn.005c4b4a
sub eax, ebx
imul eax, edi
add esi, eax
lea eax, [esi + esi + 2]
push eax
call fcn.005dd58d
mov ebx, eax
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x20], ebx
jne 0x5972ab
jmp 0x597378
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
call fcn.00401f50
push 0x6a3c1c
push eax
mov dword [ebp - 0x14], eax
call fcn.005c53a5
add esp, 8
test eax, eax
mov dword [ebp + 0x10], eax
je 0x59733b
mov esi, dword [ebp - 0x14]
mov edi, ebx
sub eax, esi
push 0x6ce7cc
sar eax, 1
shl eax, 1
mov ecx, eax
add ebx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
mov ecx, eax
mov esi, 0x6ce7cc
shl ecx, 1
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x6ce7cc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
push 0x6a3c1c
lea ebx, [ebx + eax*2]
call fcn.005c4b4a
mov ecx, dword [ebp + 0x10]
push 0x6a3c1c
lea eax, [ecx + eax*2]
push eax
mov dword [ebp - 0x14], eax
call fcn.005c53a5
add esp, 0x14
jmp 0x5972c4
mov esi, dword [ebp - 0x14]
push esi
call fcn.005c4b4a
mov ecx, eax
mov edi, ebx
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
lea ebx, [ebx + eax*2]
mov word [ebx], 0
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.005c4b4a
add esp, 0xc
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x14
call fcn.00401070
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x59738e
lea eax, [ebp - 0x1c]
push 0x200e
push eax
call fcn.005c4fbf
add esp, 8
test eax, eax
je 0x59756a
mov edx, 0x6a3c18
test edx, edx
je 0x59756a
mov eax, 0x6ce7cc
test eax, eax
je 0x59756a
push eax
push edx
call fcn.005c505f
add esp, 8
test eax, eax
je 0x59756a
mov ecx, dword [ebp - 0x20]
push 0x6a3c18
push ecx
call fcn.005c53a5
add esp, 8
mov esi, eax
xor edi, edi
test esi, esi
je 0x597409
push 0x6a3c18
inc edi
call fcn.005c4b4a
lea eax, [esi + eax*2]
push 0x6a3c18
push eax
call fcn.005c53a5
add esp, 0xc
mov esi, eax
jmp 0x5973e5
test edi, edi
je 0x59756a
mov edx, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
push edx
call fcn.0040d680
push 0x6a3c18
mov byte [ebp - 4], 0x18
call fcn.005c4b4a
push 0x6ce7cc
mov esi, eax
call fcn.005c4b4a
add esp, 8
cmp eax, esi
jbe 0x59748e
lea ecx, [ebp - 0x20]
call fcn.00401070
lea ecx, [ebp - 0x3c]
call fcn.00401f50
push eax
call fcn.005c4b4a
push 0x6a3c18
mov esi, eax
call fcn.005c4b4a
push 0x6ce7cc
mov ebx, eax
call fcn.005c4b4a
sub eax, ebx
imul eax, edi
add esi, eax
lea eax, [esi + esi + 2]
push eax
call fcn.005dd58d
mov ebx, eax
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x20], ebx
jne 0x597491
jmp 0x59755e
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
call fcn.00401f50
push 0x6a3c18
push eax
mov dword [ebp - 0x14], eax
call fcn.005c53a5
add esp, 8
test eax, eax
mov dword [ebp + 0x10], eax
je 0x597521
mov esi, dword [ebp - 0x14]
mov edi, ebx
sub eax, esi
push 0x6ce7cc
sar eax, 1
shl eax, 1
mov ecx, eax
add ebx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
mov ecx, eax
mov esi, 0x6ce7cc
shl ecx, 1
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x6ce7cc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
push 0x6a3c18
lea ebx, [ebx + eax*2]
call fcn.005c4b4a
mov ecx, dword [ebp + 0x10]
push 0x6a3c18
lea eax, [ecx + eax*2]
push eax
mov dword [ebp - 0x14], eax
call fcn.005c53a5
add esp, 0x14
jmp 0x5974aa
mov esi, dword [ebp - 0x14]
push esi
call fcn.005c4b4a
mov ecx, eax
mov edi, ebx
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
lea ebx, [ebx + eax*2]
mov word [ebx], 0
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.005c4b4a
add esp, 0xc
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x14
call fcn.00401070
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x597574
lea eax, [ebp - 0x1c]
push 0x200f
push eax
call fcn.005c4fbf
add esp, 8
test eax, eax
je 0x597750
mov edx, 0x6a3c14
test edx, edx
je 0x597750
mov eax, 0x6ce7cc
test eax, eax
je 0x597750
push eax
push edx
call fcn.005c505f
add esp, 8
test eax, eax
je 0x597750
mov ecx, dword [ebp - 0x20]
push 0x6a3c14
push ecx
call fcn.005c53a5
add esp, 8
mov esi, eax
xor edi, edi
test esi, esi
je 0x5975ef
push 0x6a3c14
inc edi
call fcn.005c4b4a
lea eax, [esi + eax*2]
push 0x6a3c14
push eax
call fcn.005c53a5
add esp, 0xc
mov esi, eax
jmp 0x5975cb
test edi, edi
je 0x597750
mov edx, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
push edx
call fcn.0040d680
push 0x6a3c14
mov byte [ebp - 4], 0x19
call fcn.005c4b4a
push 0x6ce7cc
mov esi, eax
call fcn.005c4b4a
add esp, 8
cmp eax, esi
jbe 0x597674
lea ecx, [ebp - 0x20]
call fcn.00401070
lea ecx, [ebp - 0x3c]
call fcn.00401f50
push eax
call fcn.005c4b4a
push 0x6a3c14
mov esi, eax
call fcn.005c4b4a
push 0x6ce7cc
mov ebx, eax
call fcn.005c4b4a
sub eax, ebx
imul eax, edi
add esi, eax
lea eax, [esi + esi + 2]
push eax
call fcn.005dd58d
mov ebx, eax
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x20], ebx
jne 0x597677
jmp 0x597744
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0x3c]
call fcn.00401f50
push 0x6a3c14
push eax
mov dword [ebp - 0x14], eax
call fcn.005c53a5
add esp, 8
test eax, eax
mov dword [ebp + 0x10], eax
je 0x597707
mov esi, dword [ebp - 0x14]
mov edi, ebx
sub eax, esi
push 0x6ce7cc
sar eax, 1
shl eax, 1
mov ecx, eax
add ebx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
mov ecx, eax
mov esi, 0x6ce7cc
shl ecx, 1
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x6ce7cc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
push 0x6a3c14
lea ebx, [ebx + eax*2]
call fcn.005c4b4a
mov ecx, dword [ebp + 0x10]
push 0x6a3c14
lea eax, [ecx + eax*2]
push eax
mov dword [ebp - 0x14], eax
call fcn.005c53a5
add esp, 0x14
jmp 0x597690
mov esi, dword [ebp - 0x14]
push esi
call fcn.005c4b4a
mov ecx, eax
mov edi, ebx
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
lea ebx, [ebx + eax*2]
mov word [ebx], 0
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.005c4b4a
add esp, 0xc
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x14
call fcn.00401070
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x13
call fcn.005e118c
mov ebx, dword [ebp - 0x60]
jmp 0x5979ab
cmp ebx, esi
jae 0x597782
push 0x2e
push ebx
call fcn.005c4b80
add esp, 8
test eax, eax
je 0x597782
lea edx, [eax + 1]
cmp edx, esi
jae 0x597782
mov ebx, eax
jmp 0x597764
sub esi, ebx
lea edi, [esi + 1]
cmp edi, 1
jle 0x597910
push edi
call fcn.005dd58d
mov edx, eax
mov ecx, edi
mov dword [ebp + 0x10], edx
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
add esp, 4
mov ecx, edx
and ecx, 3
push esi
mov esi, dword [ebp + 0x10]
push ebx
push esi
rep stosb byte es:[edi], al
call fcn.005c50a0
add esp, 0xc
xor ebx, ebx
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x3c], ebx
push ebx
push esi
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x38], bx
call fcn.00402890
mov eax, dword [ebp - 0x3c]
mov byte [ebp - 4], 0x1a
cmp eax, ebx
mov edi, eax
jne 0x5977e6
lea edi, [ebp - 0x38]
mov esi, dword [ebp - 0x80]
cmp esi, ebx
jne 0x5977f0
lea esi, [ebp - 0x7c]
mov eax, str._s._s
test eax, eax
je 0x5978f3
cmp esi, ebx
je 0x5978f3
cmp edi, ebx
je 0x5978f3
push eax
lea ecx, [ebp - 0x74]
call fcn.00401ed0
push esi
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x1b
call fcn.0040d680
push edi
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x1c
call fcn.0040d680
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x1d
call fcn.00401070
mov esi, dword [ebp - 0x6c]
lea ecx, [ebp - 0x98]
call fcn.00401f50
push eax
call fcn.005c4b4a
add esp, 4
lea ecx, [ebp - 0x48]
mov edi, eax
call fcn.00401f50
push eax
call fcn.005c4b4a
add esi, edi
lea esi, [eax + esi + 3]
lea edi, [esi + esi]
push edi
call fcn.005dd58d
mov edx, eax
add esp, 8
cmp edx, ebx
mov dword [ebp - 0x20], edx
je 0x5978cc
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x98]
call fcn.00401f50
push eax
lea ecx, [ebp - 0x48]
call fcn.00401f50
push eax
lea ecx, [ebp - 0x74]
call fcn.00401f50
push eax
mov eax, dword [ebp - 0x20]
push esi
push eax
call fcn.005c4ada
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.005c4b4a
add esp, 0x18
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x1c
call fcn.00401070
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x1b
call fcn.00401070
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x1a
call fcn.00401070
mov edx, dword [ebp + 0x10]
push edx
call fcn.005dd5b6
add esp, 4
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x13
call fcn.00401070
jmp 0x5979b4
mov eax, dword [ebp - 0x80]
lea ecx, [ebp - 0x20]
push eax
call fcn.00401f60
jmp 0x5979b4
test edi, edi
jne 0x5979b4
mov ecx, dword [ebp - 0x30]
xor eax, eax
mov edx, dword [ecx + 0x28]
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x5979b4
cmp esi, edx
jbe 0x5979b4
mov eax, dword [ebp - 0x4c]
inc eax
cmp eax, esi
je 0x5979b4
mov edi, esi
sub edi, edx
inc edi
push edi
call fcn.005dd58d
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x5979b4
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x28]
sub esi, eax
push esi
push eax
push ebx
call fcn.005c50a0
add esp, 0xc
lea ecx, [ebp - 0x20]
push 0
push ebx
call fcn.00402890
mov ecx, dword [ebp + 0x10]
push 0
push 1
push ecx
mov ecx, dword [ebp - 0x30]
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ecx + 0x168]
push eax
push ebx
call fcn.005954c0
push ebx
call fcn.005dd5b6
add esp, 4
mov ebx, dword [ebp - 0x30]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebx + 0x338]
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x597aef
mov cl, byte [edx]
cmp cl, 0x2e
mov ecx, dword [ebp - 0x20]
sete byte [ebp + 0x13]
xor edi, edi
push ecx
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x40], edi
mov word [ebp - 0x44], di
call fcn.00401f60
push 0x2e
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x1e
call fcn.00401f50
push eax
call fcn.005c4a9a
mov esi, eax
add esp, 8
cmp esi, edi
je 0x597a93
mov al, byte [ebp + 0x13]
test al, al
jne 0x597a1b
add esi, 2
push esi
lea ecx, [ebp + 0x10]
call fcn.005e124c
mov eax, dword [ebx + 0x338]
mov edx, dword [ebp + 0x10]
mov byte [ebp - 4], 0x1f
mov ecx, dword [eax - 8]
inc ecx
push ecx
push eax
push edx
call fcn.005c6ee0
add esp, 0xc
test eax, eax
je 0x597a85
mov word [esi], di
mov eax, dword [ebx + 0x338]
push eax
lea ecx, [ebp - 0x74]
call fcn.00401ed0
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x20
call fcn.00401f50
push eax
lea ecx, [ebp - 0x48]
call fcn.00401f50
push eax
push 0x6a0048
lea ecx, [ebp - 0x20]
call fcn.0040e360
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x1f
call fcn.00401070
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x1e
call fcn.005e118c
jmp 0x597ae3
mov ebx, dword [ebx + 0x338]
lea ecx, [ebp - 0x74]
push ebx
call fcn.00401ed0
mov al, byte [ebp + 0x13]
mov byte [ebp - 4], 0x21
test al, al
mov esi, 0x6ce7cc
jne 0x597ab7
mov esi, 0x6a0da8
lea ecx, [ebp - 0x74]
call fcn.00401f50
push eax
push esi
lea ecx, [ebp - 0x48]
call fcn.00401f50
push eax
push 0x6a0b44
lea ecx, [ebp - 0x20]
call fcn.0043c740
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x1e
call fcn.00401070
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x13
call fcn.00401070
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 3
call fcn.00401070
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.005e118c
mov edi, dword [ebp - 0x30]
mov eax, dword [edi + 0x44]
cmp eax, 4
je 0x597b17
cmp eax, 5
jne 0x597b4d
push 0x2e
lea ecx, [ebp - 0x20]
call fcn.00401f50
push eax
call fcn.005c4a9a
add esp, 8
test eax, eax
push str..flv
je 0x597b45
push eax
call fcn.005c722c
add esp, 8
test eax, eax
je 0x597b4d
push str..flv
lea ecx, [ebp - 0x20]
call fcn.00458910
lea ecx, [ebp - 0x8c]
call fcn.0041a850
mov esi, dword [ebp + 8]
mov byte [ebp - 4], 0x22
test esi, esi
je 0x597be1
push 0x2e
lea ecx, [ebp - 0x20]
call fcn.00401f50
push eax
call fcn.005c4a9a
mov ecx, dword [0x6ca27c]
add esp, 8
mov dword [ebp + 0x10], ecx
test eax, eax
mov byte [ebp - 4], 0x23
je 0x597b93
add eax, 2
lea ecx, [ebp + 0x10]
push eax
call fcn.005e133c
mov ecx, dword [edi + 0x20]
lea edx, [ebp - 0x9c]
lea eax, [ebp - 0x8c]
push edx
mov edx, dword [ebp + 0x10]
push eax
push ecx
push edx
mov ecx, esi
call fcn.004a2c80
test al, al
jne 0x597bc5
lea eax, [ebp - 0x8c]
push eax
call fcn.00441860
add esp, 4
jmp 0x597bd3
mov ecx, dword [ebp - 0x9c]
push ecx
mov ecx, edi
call fcn.0058acc0
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x22
call fcn.005e118c
jmp 0x597bf0
lea edx, [ebp - 0x8c]
push edx
call fcn.00441860
add esp, 4
lea ecx, [ebp - 0x8c]
call fcn.00401f50
push eax
call fcn.005c4b4a
mov edi, eax
mov esi, 0x103
sub esi, edi
add esp, 4
cmp esi, 0x100
jbe 0x597c1a
mov esi, pe_nt_image_headers32
lea ecx, [ebp - 0x20]
call fcn.00401f50
push eax
call fcn.005c4b4a
add esp, 4
cmp eax, esi
jbe 0x597c74
lea ecx, [ebp - 0x20]
call fcn.00401f50
push eax
call fcn.005c4b4a
mov ebx, eax
add esp, 4
lea ecx, [ebp - 0x20]
sub ebx, esi
call fcn.00401f50
lea eax, [eax + ebx*2]
lea ecx, [ebp - 0x74]
push eax
call fcn.0040d680
mov ecx, dword [ebp - 0x74]
mov byte [ebp - 4], 0x24
push ecx
lea ecx, [ebp - 0x20]
call fcn.00401f60
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x22
call fcn.00401070
lea ecx, [ebp - 0x8c]
call fcn.00401f50
cmp word [eax + edi*2 - 2], 0x5c
mov esi, 0x6ce7cc
je 0x597c91
mov esi, 0x6a0054
lea ecx, [ebp - 0x20]
call fcn.00401f50
push eax
push esi
lea ecx, [ebp - 0x8c]
call fcn.00401f50
mov ecx, dword [ebp + 0xc]
push eax
push 0x6a0b44
call fcn.0043c740
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 2
call fcn.00401070
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call fcn.00401070
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0
call fcn.00401070
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc