Function at 0x401a18
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe04
cmp dword [ebp + 0xc], 0
je 0x401a78
push 0xf
mov eax, dword [ebp + 0xc]
push dword [eax]
call sub.KERNEL32.DLL_PurgeComm
push 0x84
push dword [ebp + 0xc]
call fcn.00401303
add esp, 8
push 0
push dword [ebp + 0xc]
call fcn.00401303
add esp, 8
push 0xf8
push dword [ebp + 0xc]
call fcn.00401303
add esp, 8
push 0
push dword [ebp + 0xc]
call fcn.00401303
add esp, 8
push str.______read_____r_n
call fcn.00403934
pop ecx
push 0x7402
push 0x42
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x401a95
or eax, 0xffffffff
jmp 0x402806
push dword [ebp - 8]
call sub.KERNEL32.DLL_GlobalLock
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x401ac1
push str.E1_r_n
call fcn.00403934
pop ecx
push dword [ebp - 8]
call sub.KERNEL32.DLL_GlobalFree
or eax, 0xffffffff
jmp 0x402806
cmp dword [ebp + 0xc], 0
je 0x401dda
xor edx, edx
mov dword [0x4528a0], edx
push 0
push sym.PCDOCW.exe__MemInfPrcDlg_qqsp6HWND__uiuil
push dword [ebp + 8]
push 0x1770
push dword [0x4528e0]
call sub.USER32.DLL_CreateDialogParamA
mov dword [0x45289c], eax
cmp dword [0x45289c], 0
je 0x401b23
push str.Profitest_Speicher_lesen
push dword [0x45289c]
call sub.USER32.DLL_SetWindowTextA
push 5
push dword [0x45289c]
call sub.USER32.DLL_ShowWindow
push dword [0x45289c]
call sub.USER32.DLL_UpdateWindow
push 0
push dword [0x4528dc]
call sub.USER32.DLL_EnableWindow
push 0
push dword [ebp + 8]
call sub.USER32.DLL_EnableWindow
mov byte [ebp - 9], 0
mov word [ebp - 0x1c], 0x7400
mov word [ebp - 0x20], 0xffff
mov word [ebp - 0xe], 1
mov cx, word [ebp - 0xe]
cmp cx, word [ebp - 0x1c]
ja 0x401c96
movzx eax, word [ebp - 0xe]
dec eax
mov dword [ebp - 0x1f8], eax
fild dword [ebp - 0x1f8]
fmul dword [0x40280c]
movzx edx, word [ebp - 0x1c]
mov dword [ebp - 0x1fc], edx
fild dword [ebp - 0x1fc]
fdivp st(1)
fadd dword [0x402810]
call fcn.0044b758
mov word [ebp - 0x22], ax
cmp word [ebp - 0x22], 0x64
jbe 0x401ba3
mov word [ebp - 0x22], 0x64
movzx eax, word [ebp - 0xe]
mov ecx, 0x64
cdq
idiv ecx
test edx, edx
jne 0x401be5
jmp 0x401bcd
lea eax, [ebp - 0x1f4]
push eax
call sub.USER32.DLL_TranslateMessage
lea edx, [ebp - 0x1f4]
push edx
call sub.USER32.DLL_DispatchMessageA
push 1
push 0
push 0
push 0
lea ecx, [ebp - 0x1f4]
push ecx
call sub.USER32.DLL_PeekMessageA
test eax, eax
jne 0x401bb5
cmp dword [0x45289c], 0
je 0x401c2f
push dword [0x45289c]
call sub.USER32.DLL_IsWindow
test eax, eax
je 0x401c2f
mov ax, word [ebp - 0x22]
cmp ax, word [ebp - 0x20]
je 0x401c1e
movzx edx, word [ebp - 0x22]
push edx
push 6
push 0x111
push dword [0x45289c]
call sub.USER32.DLL_SendMessageA
mov cx, word [ebp - 0x22]
mov word [ebp - 0x20], cx
cmp dword [0x4528a0], 0
jne 0x401c96
lea eax, [ebp - 0xa]
push eax
push dword [ebp + 0xc]
call fcn.0040120c
add esp, 8
test eax, eax
jne 0x401c62
push str.MsgBox_204:_rd_data
call fcn.00403934
pop ecx
push 0x10
push 0x456bb9
push str.Cant_read_PROFI_data.
push 0
call sub.USER32.DLL_MessageBoxA
jmp 0x401c96
mov dl, byte [ebp - 0xa]
push edx
push dword [ebp + 0xc]
call fcn.00401303
add esp, 8
movzx ecx, word [ebp - 0xe]
mov eax, dword [ebp - 4]
mov dl, byte [ebp - 0xa]
mov byte [eax + ecx], dl
mov cl, byte [ebp - 0xa]
add byte [ebp - 9], cl
inc word [ebp - 0xe]
mov ax, word [ebp - 0xe]
cmp ax, word [ebp - 0x1c]
jbe 0x401b5e
push 1
push dword [0x4528dc]
call sub.USER32.DLL_EnableWindow
push 1
push dword [ebp + 8]
call sub.USER32.DLL_EnableWindow
cmp dword [0x45289c], 0
je 0x401cc9
push dword [0x45289c]
call sub.USER32.DLL_DestroyWindow
xor edx, edx
mov dword [0x45289c], edx
mov cx, word [ebp - 0xe]
cmp cx, word [ebp - 0x1c]
jbe 0x401d13
movzx eax, word [ebp - 0xe]
dec eax
push eax
push str.__read__d_r_n
call fcn.00403934
add esp, 8
mov dl, byte [ebp - 9]
push edx
push dword [ebp + 0xc]
call fcn.00401303
add esp, 8
lea ecx, [ebp - 0xa]
push ecx
push dword [ebp + 0xc]
call fcn.0040120c
add esp, 8
test eax, eax
jne 0x401d2d
push str.timeout1_r_n
call fcn.00403934
pop ecx
push dword [ebp - 8]
call sub.KERNEL32.DLL_GlobalUnlock
push dword [ebp - 8]
call sub.KERNEL32.DLL_GlobalFree
mov eax, 0xfffffffe
jmp 0x402806
cmp byte [ebp - 0xa], 0x3e
je 0x401d53
push str.MsgBox_204:_chk
call fcn.00403934
pop ecx
push 0x10
push 0x456bf6
push str.Checksum_error.
push 0
call sub.USER32.DLL_MessageBoxA
jmp 0x401d13
push str.__download_OK_r_n
call fcn.00403934
pop ecx
mov word [ebp - 0x10], 0
push 0xff
push dword [ebp + 0xc]
call fcn.00401303
add esp, 8
inc word [ebp - 0x10]
cmp word [ebp - 0x10], 4
jb 0x401d64
push 0x1011
lea edx, [ebp - 0x110]
push edx
push dword [ebp + 0x10]
call sub.KERNEL32.DLL_OpenFile
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
je 0x401e94
movzx ecx, word [ebp - 0xe]
dec ecx
push ecx
mov eax, dword [ebp - 4]
inc eax
push eax
push dword [ebp - 0x28]
call sub.KERNEL32.DLL__hwrite
push 0x468448
call fcn.0044438c
pop ecx
inc eax
push eax
push 0x468448
push dword [ebp - 0x28]
call sub.KERNEL32.DLL__hwrite
push dword [ebp - 0x28]
call sub.KERNEL32.DLL__lclose
jmp 0x401e94
push 0
push dword [ebp + 0x10]
call sub.KERNEL32.DLL__lopen
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
je 0x401e5c
push 0x7400
mov edx, dword [ebp - 4]
inc edx
push edx
push dword [ebp - 0x28]
call sub.KERNEL32.DLL__hread
cmp eax, 0x7400
je 0x401e10
push dword [ebp - 0x28]
call sub.KERNEL32.DLL__lclose
jmp 0x401e5c
mov word [ebp - 0x12], 0
push 1
movzx ecx, word [ebp - 0x12]
add ecx, 0x468448
push ecx
push dword [ebp - 0x28]
call sub.KERNEL32.DLL__hread
dec eax
jne 0x401e47
inc word [ebp - 0x12]
movzx eax, word [ebp - 0x12]
cmp byte [eax + 0x468447], 0
je 0x401e47
cmp word [ebp - 0x12], 0xfa
jb 0x401e16
movzx edx, word [ebp - 0x12]
mov byte [edx + 0x468448], 0
push dword [ebp - 0x28]
call sub.KERNEL32.DLL__lclose
jmp 0x401e94
push str.MsgBox_204:_dat_file
call fcn.00403934
pop ecx
push 0x10
push str.PROFI
push str.No_PROFI204.DAT_file.
push 0
call sub.USER32.DLL_MessageBoxA
push dword [ebp - 8]
call sub.KERNEL32.DLL_GlobalUnlock
push dword [ebp - 8]
call sub.KERNEL32.DLL_GlobalFree
mov eax, 0xfffffffd
jmp 0x402806
mov dword [ebp - 0x84], str.mOhm
push str.PROFITEST204
push 0x468448
call fcn.0044449d
add esp, 8
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x401ece
push 0x456c4a
mov edx, dword [ebp - 0x48]
inc edx
push edx
call fcn.0044449d
add esp, 8
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x401ee9
push 0x456c4c
mov ecx, dword [ebp - 0x48]
inc ecx
push ecx
call fcn.0044449d
add esp, 8
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x401f60
mov eax, dword [ebp - 0x48]
movsx edx, byte [eax + 1]
cmp edx, 0x41
jl 0x401f60
mov ecx, dword [ebp - 0x48]
movsx eax, byte [ecx + 1]
cmp eax, 0x5a
jge 0x401f60
mov edx, dword [ebp - 0x48]
movsx ecx, byte [edx + 2]
cmp ecx, 0x41
jl 0x401f60
mov eax, dword [ebp - 0x48]
movsx edx, byte [eax + 2]
cmp edx, 0x5a
jge 0x401f60
mov ecx, dword [ebp - 0x48]
mov al, byte [ecx + 1]
cmp al, byte [0x4520a4]
jg 0x401f49
mov edx, dword [ebp - 0x48]
mov cl, byte [edx + 1]
cmp cl, byte [0x4520a4]
jne 0x401f60
mov eax, dword [ebp - 0x48]
mov dl, byte [eax + 2]
cmp dl, byte [0x4520a5]
jl 0x401f60
push 0x28
push 0x4520ec
push dword [ebp - 0x84]
call fcn.0044416c
add esp, 0xc
jmp 0x401f75
push 0x28
push 0x4520c4
push dword [ebp - 0x84]
call fcn.0044416c
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov word [ebp - 0x36], 1
jmp 0x4027c2
movzx eax, word [ebp - 0x36]
mov edx, dword [ebp - 4]
xor ecx, ecx
mov cl, byte [edx + eax]
shl ecx, 8
movzx eax, word [ebp - 0x36]
mov edx, dword [ebp - 4]
movzx eax, byte [edx + eax + 1]
add cx, ax
add cx, 0x7c01
mov word [ebp - 0x2e], cx
movzx edx, word [ebp - 0x2e]
mov ecx, dword [ebp - 4]
xor eax, eax
mov al, byte [ecx + edx]
mov dword [ebp - 0x6c], eax
movzx edx, word [ebp - 0x2e]
mov ecx, dword [ebp - 4]
xor eax, eax
mov al, byte [ecx + edx + 1]
and ax, 0x7f
shl eax, 8
movzx edx, word [ebp - 0x2e]
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + edx + 2]
add ax, dx
mov word [ebp - 0x30], ax
movzx eax, word [ebp - 0x2e]
mov ecx, dword [ebp - 4]
movzx eax, byte [ecx + eax + 3]
mov word [ebp - 0x32], ax
mov word [ebp - 0x10], 1
jmp 0x40201a
movzx edx, word [ebp - 0x2e]
mov ecx, dword [ebp - 4]
lea eax, [ecx + edx]
movzx edx, word [ebp - 0x10]
mov cl, byte [eax + edx + 3]
movzx eax, word [ebp - 0x10]
mov byte [eax + 0x46854b], cl
inc word [ebp - 0x10]
mov dx, word [ebp - 0x10]
cmp dx, word [ebp - 0x32]
ja 0x40202c
cmp word [ebp - 0x10], 0xfa
jb 0x401ffa
movzx ecx, word [ebp - 0x10]
mov byte [ecx + 0x46854b], 0
mov word [ebp - 0xe], 0
jmp 0x40205b
movzx eax, word [ebp - 0xe]
cmp byte [eax + 0x46854c], 0x20
jae 0x402057
movzx edx, word [ebp - 0xe]
mov byte [edx + 0x46854c], 0x20
inc word [ebp - 0xe]
movzx ecx, word [ebp - 0xe]
movzx eax, word [ebp - 0x10]
dec eax
cmp ecx, eax
jl 0x40203f
movzx edx, word [ebp - 0x2e]
mov ecx, dword [ebp - 4]
lea eax, [ecx + edx]
movzx edx, word [ebp - 0x32]
xor ecx, ecx
mov cl, byte [eax + edx + 6]
and ecx, 0xf
push ecx
movzx eax, word [ebp - 0x2e]
mov edx, dword [ebp - 4]
lea ecx, [edx + eax]
movzx eax, word [ebp - 0x32]
xor edx, edx
mov dl, byte [ecx + eax + 6]
sar edx, 4
push edx
movzx ecx, word [ebp - 0x2e]
mov eax, dword [ebp - 4]
lea edx, [eax + ecx]
movzx ecx, word [ebp - 0x32]
cmp byte [edx + ecx + 6], 0x90
jae 0x4020b4
mov eax, 0x456c5f
jmp 0x4020b9
mov eax, 0x456c62
push eax
movzx edx, word [ebp - 0x2e]
mov ecx, dword [ebp - 4]
lea eax, [ecx + edx]
movzx edx, word [ebp - 0x32]
xor ecx, ecx
mov cl, byte [eax + edx + 5]
and ecx, 0xf
push ecx
movzx eax, word [ebp - 0x2e]
mov edx, dword [ebp - 4]
lea ecx, [edx + eax]
movzx eax, word [ebp - 0x32]
xor edx, edx
mov dl, byte [ecx + eax + 5]
sar edx, 4
push edx
movzx ecx, word [ebp - 0x2e]
mov eax, dword [ebp - 4]
lea edx, [eax + ecx]
movzx ecx, word [ebp - 0x32]
xor eax, eax
mov al, byte [edx + ecx + 4]
and eax, 0xf
push eax
movzx edx, word [ebp - 0x2e]
mov ecx, dword [ebp - 4]
lea eax, [ecx + edx]
movzx edx, word [ebp - 0x32]
xor ecx, ecx
mov cl, byte [eax + edx + 4]
sar ecx, 4
push ecx
push str._d_d._d_d._s_d_d
push 0x46864c
call fcn.00447d04
add esp, 0x24
movzx eax, word [ebp - 0x2e]
mov edx, dword [ebp - 4]
lea ecx, [edx + eax]
movzx eax, word [ebp - 0x32]
xor edx, edx
mov dl, byte [ecx + eax + 8]
and edx, 0xf
push edx
movzx ecx, word [ebp - 0x2e]
mov eax, dword [ebp - 4]
lea edx, [eax + ecx]
movzx ecx, word [ebp - 0x32]
xor eax, eax
mov al, byte [edx + ecx + 8]
sar eax, 4
push eax
movzx edx, word [ebp - 0x2e]
mov ecx, dword [ebp - 4]
lea eax, [ecx + edx]
movzx edx, word [ebp - 0x32]
xor ecx, ecx
mov cl, byte [eax + edx + 7]
and ecx, 0xf
push ecx
movzx eax, word [ebp - 0x2e]
mov edx, dword [ebp - 4]
lea ecx, [edx + eax]
movzx eax, word [ebp - 0x32]
xor edx, edx
mov dl, byte [ecx + eax + 7]
sar edx, 4
push edx
push str._d_d:_d_d
push 0x46866c
call fcn.00447d04
add esp, 0x18
mov cx, word [ebp - 0x30]
sub cx, word [ebp - 0x32]
add cx, 0xfff7
mov word [ebp - 0x30], cx
mov ax, word [ebp - 0x2e]
add ax, word [ebp - 0x32]
add ax, 9
mov word [ebp - 0x2e], ax
xor edx, edx
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x3c], 1
xor ecx, ecx
mov dword [ebp - 0x3c], ecx
mov word [ebp - 0x12], 1
mov word [ebp - 0x34], 0
xor eax, eax
mov dword [ebp - 0x70], eax
mov dx, word [ebp - 0x34]
cmp dx, word [ebp - 0x30]
jae 0x40278b
movzx ecx, word [ebp - 0x2e]
mov eax, dword [ebp - 4]
lea edx, [eax + ecx]
movzx ecx, word [ebp - 0x34]
xor eax, eax
mov al, byte [edx + ecx]
sar eax, 4
mov word [ebp - 0x18], ax
movzx edx, word [ebp - 0x2e]
mov ecx, dword [ebp - 4]
lea eax, [ecx + edx]
movzx edx, word [ebp - 0x34]
xor ecx, ecx
mov cl, byte [eax + edx]
and cx, 0xf
mov word [ebp - 0x1e], cx
cmp word [ebp - 0x18], 1
jb 0x402232
cmp word [ebp - 0x18], 7
jb 0x40223a
mov word [ebp - 0x16], 0
jmp 0x40224a
movzx eax, word [ebp - 0x18]
mov dx, word [eax*4 + 0x4520a8]
mov word [ebp - 0x16], dx
mov cx, word [ebp - 0x18]
cmp cx, word [ebp - 0x12]
jne 0x40276a
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x74]
jne 0x402767
cmp dword [ebp - 0x3c], 0
jne 0x402358
cmp dword [ebp - 0x2c], 0
jne 0x4022a9
push 1
push 0x456c6f
push dword [ebp + 0x14]
call fcn.004051d0
add esp, 0xc
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x401e5c
push dword [0x454c74]
push str._s_2.01_r_n
push dword [ebp - 0x2c]
call fcn.004052dc
add esp, 0xc
push dword [ebp - 0x6c]
push str.3__d
push dword [ebp - 0x2c]
call fcn.004052dc
add esp, 0xc
push dword [ebp - 0x2c]
push 0
call fcn.004053a4
add esp, 8
push 0x46854c
push str.4__s
push dword [ebp - 0x2c]
call fcn.004052dc
add esp, 0xc
push dword [ebp - 0x2c]
push 0
call fcn.004053a4
add esp, 8
push 0x46864c
push str.5__s
push dword [ebp - 0x2c]
call fcn.004052dc
add esp, 0xc
push dword [ebp - 0x2c]
push 0
call fcn.004053a4
add esp, 8
push 0x46866c
push str.6__s
push dword [ebp - 0x2c]
call fcn.004052dc
add esp, 0xc
push dword [ebp - 0x2c]
push 0
call fcn.004053a4
add esp, 8
mov edx, dword [ebp - 0x74]
inc edx
push edx
push str.7__d
push dword [ebp - 0x2c]
call fcn.004052dc
add esp, 0xc
push dword [ebp - 0x2c]
push 0
call fcn.004053a4
add esp, 8
mov dword [ebp - 0x3c], 1
cmp word [ebp - 0x16], 0
jne 0x402367
mov word [ebp - 0x1a], 0
jmp 0x402378
movzx eax, word [ebp - 0x16]
dec eax
mov ecx, 3
cdq
idiv ecx
mov word [ebp - 0x1a], ax
mov word [ebp - 0x14], 0
mov ax, word [ebp - 0x14]
cmp ax, word [ebp - 0x1a]
jae 0x4026bb
movzx edx, word [ebp - 0x14]
movzx ecx, word [ebp - 0x12]
lea eax, [ecx + ecx*2]
lea ecx, [eax*8 + 0x4527f8]
push dword [ecx + edx*4]
movzx edx, word [ebp - 0x12]
push edx
mov ax, word [ebp - 0x2e]
add ax, word [ebp - 0x34]
movzx edx, word [ebp - 0x14]
lea ecx, [edx + edx*2]
add ax, cx
inc eax
push eax
push dword [ebp - 4]
call fcn.004013f2
add esp, 0x10
fstp qword [ebp - 0x44]
cmp dword [0x468548], 0
je 0x4023ea
push 0x456c95
lea eax, [ebp - 0x1d8]
push eax
call fcn.0044435c
add esp, 8
jmp 0x4026a9
cmp dword [0x468544], 0
je 0x402409
push 0x456c97
lea edx, [ebp - 0x1d8]
push edx
call fcn.0044435c
add esp, 8
jmp 0x402410
mov byte [ebp - 0x1d8], 0
movzx ecx, word [ebp - 0x12]
imul eax, ecx, 0xf0
movzx edx, word [ebp - 0x14]
mov ecx, edx
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, ecx
add eax, 0x45218c
mov dword [ebp - 0x84], eax
jmp 0x402463
mov eax, dword [ebp - 0x84]
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x88], edx
mov ecx, dword [ebp - 0x84]
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x84]
mov dword [ecx + 0x14], edx
mov eax, dword [ebp - 0x84]
cmp dword [eax + 0x18], 0
je 0x40248f
fld qword [ebp - 0x44]
mov edx, dword [ebp - 0x84]
fdiv qword [edx + 8]
fadd qword [0x402814]
mov ecx, dword [ebp - 0x84]
fcomp qword [ecx + 0x20]
fnstsw ax
sahf
jae 0x402436
mov edx, dword [ebp - 0x84]
fld qword [edx + 8]
fdivr qword [ebp - 0x44]
fstp qword [ebp - 0x44]
lea ecx, [ebp - 0x1d8]
push ecx
call fcn.0044438c
pop ecx
lea edx, [ebp - 0x1d8]
add eax, edx
mov dword [ebp - 0x48], eax
push dword [ebp - 0x40]
push dword [ebp - 0x44]
call fcn.0044b714
add esp, 8
fcomp dword [0x40281c]
fnstsw ax
sahf
jbe 0x4024e4
push 0x456c99
push dword [ebp - 0x48]
call fcn.0044435c
add esp, 8
jmp 0x40265f
push dword [ebp - 0x40]
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x84]
push dword [ecx + 0x10]
push 0x456c9e
push dword [ebp - 0x48]
call fcn.00447d04
add esp, 0x14
push 0x2e
push dword [ebp - 0x48]
call fcn.00444485
add esp, 8
test eax, eax
je 0x40255e
push dword [ebp - 0x48]
call fcn.0044438c
pop ecx
mov dword [ebp - 0x4c], eax
jmp 0x402525
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 1
jle 0x40253b
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
movsx ecx, byte [eax + edx - 1]
cmp ecx, 0x30
je 0x402522
cmp dword [ebp - 0x4c], 0
jle 0x402554
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
movsx ecx, byte [eax + edx - 1]
cmp ecx, 0x2e
jne 0x402554
dec dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
mov byte [eax + edx], 0
xor ecx, ecx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], ecx
push dword [ebp - 0x48]
call fcn.0044438c
pop ecx
mov dword [ebp - 0x54], eax
xor eax, eax
mov dword [ebp - 0x4c], eax
jmp 0x402594
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x4c]
movsx edx, byte [edx + eax]
push edx
call fcn.00448cb8
pop ecx
test eax, eax
je 0x402591
inc dword [ebp - 0x58]
inc dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
cmp ecx, dword [ebp - 0x54]
jge 0x4025ab
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
movsx ecx, byte [eax + edx]
cmp ecx, 0x2e
jne 0x402579
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x54]
jge 0x4025de
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
movsx eax, byte [edx + ecx]
push eax
call fcn.00448cb8
pop ecx
test eax, eax
je 0x4025cb
inc dword [ebp - 0x5c]
inc dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
cmp edx, dword [ebp - 0x54]
jl 0x4025b3
jmp 0x4025de
dec dword [ebp - 0x5c]
dec dword [ebp - 0x54]
cmp dword [ebp - 0x5c], 0
jle 0x40260b
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0x5c]
cmp ecx, 5
jle 0x40260b
cmp dword [ebp - 0x54], 1
jle 0x40260b
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x54]
movsx ecx, byte [eax + edx - 1]
push ecx
call fcn.00448cb8
pop ecx
test eax, eax
jne 0x4025d8
cmp dword [ebp - 0x54], 0
jle 0x402624
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x54]
movsx ecx, byte [eax + edx - 1]
cmp ecx, 0x2e
jne 0x402624
dec dword [ebp - 0x54]
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x54]
mov byte [eax + edx], 0
mov ecx, dword [ebp - 0x84]
mov eax, dword [ecx]
cmp byte [eax], 0
je 0x40265f
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x54]
mov byte [edx + ecx], 0x20
inc dword [ebp - 0x54]
mov eax, dword [ebp - 0x84]
push dword [eax]
mov edx, dword [ebp - 0x48]
add edx, dword [ebp - 0x54]
push edx
call fcn.0044435c
add esp, 8
lea ecx, [ebp - 0x1d8]
push ecx
mov eax, dword [ebp - 0x84]
push dword [eax + 0x14]
push 0x456ca4
push dword [ebp - 0x2c]
call fcn.004052dc
add esp, 0x10
push dword [ebp - 0x2c]
push 0
call fcn.004053a4
add esp, 8
lea edx, [ebp - 0x1d8]
push edx
mov ecx, dword [ebp - 0x84]
push dword [ecx + 0x14]
push str.data:__d__s_r_n
call fcn.00403934
add esp, 0xc
inc word [ebp - 0x14]
mov ax, word [ebp - 0x14]
cmp ax, word [ebp - 0x1a]
jb 0x40238c
cmp word [ebp - 0x1e], 0
jbe 0x402767
mov word [ebp - 0x10], 0
mov dx, word [ebp - 0x10]
cmp dx, word [ebp - 0x1e]
jae 0x402728
movzx ecx, word [ebp - 0x2e]
mov eax, dword [ebp - 4]
lea edx, [eax + ecx]
movzx ecx, word [ebp - 0x34]
lea eax, [edx + ecx]
movzx edx, word [ebp - 0x16]
lea ecx, [eax + edx]
movzx eax, word [ebp - 0x10]
mov dl, byte [ecx + eax]
movzx ecx, word [ebp - 0x10]
mov byte [ebp + ecx - 0x1d8], dl
movzx eax, word [ebp - 0x10]
cmp byte [ebp + eax - 0x1d8], 0x20
jae 0x40271a
movzx edx, word [ebp - 0x10]
mov byte [ebp + edx - 0x1d8], 0x20
inc word [ebp - 0x10]
mov cx, word [ebp - 0x10]
cmp cx, word [ebp - 0x1e]
jb 0x4026d6
movzx eax, word [ebp - 0x10]
mov byte [ebp + eax - 0x1d8], 0
lea edx, [ebp - 0x1d8]
push edx
movzx ecx, word [ebp - 0x12]
mov eax, ecx
add eax, eax
lea eax, [eax + eax*4]
add eax, 6
push eax
push 0x456cb8
push dword [ebp - 0x2c]
call fcn.004052dc
add esp, 0x10
push dword [ebp - 0x2c]
push 0
call fcn.004053a4
add esp, 8
inc dword [ebp - 0x70]
cmp word [ebp - 0x16], 0
je 0x40278b
mov dx, word [ebp - 0x16]
add dx, word [ebp - 0x1e]
add word [ebp - 0x34], dx
mov cx, word [ebp - 0x34]
cmp cx, word [ebp - 0x30]
jb 0x4021ef
inc word [ebp - 0x12]
cmp word [ebp - 0x12], 7
jb 0x4021d6
cmp dword [ebp - 0x3c], 0
je 0x4027b0
push 0x456cbe
push dword [ebp - 0x2c]
call fcn.004052dc
add esp, 8
inc dword [ebp - 0x74]
cmp dword [ebp - 0x3c], 0
jne 0x4021cb
add word [ebp - 0x36], 2
movzx eax, word [ebp - 0x36]
mov edx, dword [ebp - 4]
cmp byte [edx + eax], 0
jne 0x401f85
push dword [ebp - 8]
call sub.KERNEL32.DLL_GlobalUnlock
push dword [ebp - 8]
call sub.KERNEL32.DLL_GlobalFree
push str.OK_r_n
call fcn.00403934
pop ecx
cmp dword [ebp - 0x2c], 0
je 0x402804
push dword [ebp - 0x2c]
call fcn.00445c04
pop ecx
mov eax, 1
jmp 0x402806
xor eax, eax
mov esp, ebp
pop ebp
ret