Function at 0x401a00
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe04
cmp dword [ebp + 0xc], 0
je 0x401a60
push 0xf
mov eax, dword [ebp + 0xc]
push dword [eax]
call sub.KERNEL32.DLL_PurgeComm
push 0x84
push dword [ebp + 0xc]
call fcn.004012eb
add esp, 8
push 0
push dword [ebp + 0xc]
call fcn.004012eb
add esp, 8
push 0xf8
push dword [ebp + 0xc]
call fcn.004012eb
add esp, 8
push 0
push dword [ebp + 0xc]
call fcn.004012eb
add esp, 8
push str.______read_____r_n
call fcn.0040391c
pop ecx
push 0x7402
push 0x42
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x401a7d
or eax, 0xffffffff
jmp 0x4027ee
push dword [ebp - 8]
call sub.KERNEL32.DLL_GlobalLock
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x401aa9
push str.E1_r_n
call fcn.0040391c
pop ecx
push dword [ebp - 8]
call sub.KERNEL32.DLL_GlobalFree
or eax, 0xffffffff
jmp 0x4027ee
cmp dword [ebp + 0xc], 0
je 0x401dc2
xor edx, edx
mov dword [0x44f8a0], edx
push 0
push sym.htpwrdoc.exe__MemInfPrcDlg_qqsp6HWND__uiuil
push dword [ebp + 8]
push 0x1770
push dword [0x44f8e0]
call sub.USER32.DLL_CreateDialogParamA
mov dword [0x44f89c], eax
cmp dword [0x44f89c], 0
je 0x401b0b
push str.Profitest_Speicher_lesen
push dword [0x44f89c]
call sub.USER32.DLL_SetWindowTextA
push 5
push dword [0x44f89c]
call sub.USER32.DLL_ShowWindow
push dword [0x44f89c]
call sub.USER32.DLL_UpdateWindow
push 0
push dword [0x44f8dc]
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 0x401c7e
movzx eax, word [ebp - 0xe]
dec eax
mov dword [ebp - 0x1f8], eax
fild dword [ebp - 0x1f8]
fmul dword [0x4027f4]
movzx edx, word [ebp - 0x1c]
mov dword [ebp - 0x1fc], edx
fild dword [ebp - 0x1fc]
fdivp st(1)
fadd dword [0x4027f8]
call fcn.004489c4
mov word [ebp - 0x22], ax
cmp word [ebp - 0x22], 0x64
jbe 0x401b8b
mov word [ebp - 0x22], 0x64
movzx eax, word [ebp - 0xe]
mov ecx, 0x64
cdq
idiv ecx
test edx, edx
jne 0x401bcd
jmp 0x401bb5
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 0x401b9d
cmp dword [0x44f89c], 0
je 0x401c17
push dword [0x44f89c]
call sub.USER32.DLL_IsWindow
test eax, eax
je 0x401c17
mov ax, word [ebp - 0x22]
cmp ax, word [ebp - 0x20]
je 0x401c06
movzx edx, word [ebp - 0x22]
push edx
push 6
push 0x111
push dword [0x44f89c]
call sub.USER32.DLL_SendMessageA
mov cx, word [ebp - 0x22]
mov word [ebp - 0x20], cx
cmp dword [0x44f8a0], 0
jne 0x401c7e
lea eax, [ebp - 0xa]
push eax
push dword [ebp + 0xc]
call fcn.004011f4
add esp, 8
test eax, eax
jne 0x401c4a
push str.MsgBox_204:_rd_data
call fcn.0040391c
pop ecx
push 0x10
push 0x453a61
push str.Cant_read_PROFI_data.
push 0
call sub.USER32.DLL_MessageBoxA
jmp 0x401c7e
mov dl, byte [ebp - 0xa]
push edx
push dword [ebp + 0xc]
call fcn.004012eb
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 0x401b46
push 1
push dword [0x44f8dc]
call sub.USER32.DLL_EnableWindow
push 1
push dword [ebp + 8]
call sub.USER32.DLL_EnableWindow
cmp dword [0x44f89c], 0
je 0x401cb1
push dword [0x44f89c]
call sub.USER32.DLL_DestroyWindow
xor edx, edx
mov dword [0x44f89c], edx
mov cx, word [ebp - 0xe]
cmp cx, word [ebp - 0x1c]
jbe 0x401cfb
movzx eax, word [ebp - 0xe]
dec eax
push eax
push str.__read__d_r_n
call fcn.0040391c
add esp, 8
mov dl, byte [ebp - 9]
push edx
push dword [ebp + 0xc]
call fcn.004012eb
add esp, 8
lea ecx, [ebp - 0xa]
push ecx
push dword [ebp + 0xc]
call fcn.004011f4
add esp, 8
test eax, eax
jne 0x401d15
push str.timeout1_r_n
call fcn.0040391c
pop ecx
push dword [ebp - 8]
call sub.KERNEL32.DLL_GlobalUnlock
push dword [ebp - 8]
call sub.KERNEL32.DLL_GlobalFree
mov eax, 0xfffffffe
jmp 0x4027ee
cmp byte [ebp - 0xa], 0x3e
je 0x401d3b
push str.MsgBox_204:_chk
call fcn.0040391c
pop ecx
push 0x10
push 0x453a9e
push str.Checksum_error.
push 0
call sub.USER32.DLL_MessageBoxA
jmp 0x401cfb
push str.__download_OK_r_n
call fcn.0040391c
pop ecx
mov word [ebp - 0x10], 0
push 0xff
push dword [ebp + 0xc]
call fcn.004012eb
add esp, 8
inc word [ebp - 0x10]
cmp word [ebp - 0x10], 4
jb 0x401d4c
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 0x401e7c
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 0x464a18
call fcn.004415f8
pop ecx
inc eax
push eax
push 0x464a18
push dword [ebp - 0x28]
call sub.KERNEL32.DLL__hwrite
push dword [ebp - 0x28]
call sub.KERNEL32.DLL__lclose
jmp 0x401e7c
push 0
push dword [ebp + 0x10]
call sub.KERNEL32.DLL__lopen
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
je 0x401e44
push 0x7400
mov edx, dword [ebp - 4]
inc edx
push edx
push dword [ebp - 0x28]
call sub.KERNEL32.DLL__hread
cmp eax, 0x7400
je 0x401df8
push dword [ebp - 0x28]
call sub.KERNEL32.DLL__lclose
jmp 0x401e44
mov word [ebp - 0x12], 0
push 1
movzx ecx, word [ebp - 0x12]
add ecx, 0x464a18
push ecx
push dword [ebp - 0x28]
call sub.KERNEL32.DLL__hread
dec eax
jne 0x401e2f
inc word [ebp - 0x12]
movzx eax, word [ebp - 0x12]
cmp byte [eax + 0x464a17], 0
je 0x401e2f
cmp word [ebp - 0x12], 0xfa
jb 0x401dfe
movzx edx, word [ebp - 0x12]
mov byte [edx + 0x464a18], 0
push dword [ebp - 0x28]
call sub.KERNEL32.DLL__lclose
jmp 0x401e7c
push str.MsgBox_204:_dat_file
call fcn.0040391c
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 0x4027ee
mov dword [ebp - 0x84], str.mOhm
push str.PROFITEST204
push 0x464a18
call fcn.00441709
add esp, 8
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x401eb6
push 0x453af2
mov edx, dword [ebp - 0x48]
inc edx
push edx
call fcn.00441709
add esp, 8
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x401ed1
push 0x453af4
mov ecx, dword [ebp - 0x48]
inc ecx
push ecx
call fcn.00441709
add esp, 8
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x401f48
mov eax, dword [ebp - 0x48]
movsx edx, byte [eax + 1]
cmp edx, 0x41
jl 0x401f48
mov ecx, dword [ebp - 0x48]
movsx eax, byte [ecx + 1]
cmp eax, 0x5a
jge 0x401f48
mov edx, dword [ebp - 0x48]
movsx ecx, byte [edx + 2]
cmp ecx, 0x41
jl 0x401f48
mov eax, dword [ebp - 0x48]
movsx edx, byte [eax + 2]
cmp edx, 0x5a
jge 0x401f48
mov ecx, dword [ebp - 0x48]
mov al, byte [ecx + 1]
cmp al, byte [0x44f0a4]
jg 0x401f31
mov edx, dword [ebp - 0x48]
mov cl, byte [edx + 1]
cmp cl, byte [0x44f0a4]
jne 0x401f48
mov eax, dword [ebp - 0x48]
mov dl, byte [eax + 2]
cmp dl, byte [0x44f0a5]
jl 0x401f48
push 0x28
push 0x44f0ec
push dword [ebp - 0x84]
call fcn.004413d8
add esp, 0xc
jmp 0x401f5d
push 0x28
push 0x44f0c4
push dword [ebp - 0x84]
call fcn.004413d8
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov word [ebp - 0x36], 1
jmp 0x4027aa
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 0x402002
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 + 0x464b1b], cl
inc word [ebp - 0x10]
mov dx, word [ebp - 0x10]
cmp dx, word [ebp - 0x32]
ja 0x402014
cmp word [ebp - 0x10], 0xfa
jb 0x401fe2
movzx ecx, word [ebp - 0x10]
mov byte [ecx + 0x464b1b], 0
mov word [ebp - 0xe], 0
jmp 0x402043
movzx eax, word [ebp - 0xe]
cmp byte [eax + 0x464b1c], 0x20
jae 0x40203f
movzx edx, word [ebp - 0xe]
mov byte [edx + 0x464b1c], 0x20
inc word [ebp - 0xe]
movzx ecx, word [ebp - 0xe]
movzx eax, word [ebp - 0x10]
dec eax
cmp ecx, eax
jl 0x402027
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 0x40209c
mov eax, 0x453b07
jmp 0x4020a1
mov eax, 0x453b0a
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 0x464c1c
call fcn.00444f70
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 0x464c3c
call fcn.00444f70
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 0x402773
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 0x40221a
cmp word [ebp - 0x18], 7
jb 0x402222
mov word [ebp - 0x16], 0
jmp 0x402232
movzx eax, word [ebp - 0x18]
mov dx, word [eax*4 + 0x44f0a8]
mov word [ebp - 0x16], dx
mov cx, word [ebp - 0x18]
cmp cx, word [ebp - 0x12]
jne 0x402752
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x74]
jne 0x40274f
cmp dword [ebp - 0x3c], 0
jne 0x402340
cmp dword [ebp - 0x2c], 0
jne 0x402291
push 1
push 0x453b17
push dword [ebp + 0x14]
call fcn.004051b8
add esp, 0xc
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x401e44
push dword [0x451b8c]
push str._s_2.01_r_n
push dword [ebp - 0x2c]
call fcn.004052c4
add esp, 0xc
push dword [ebp - 0x6c]
push str.3__d
push dword [ebp - 0x2c]
call fcn.004052c4
add esp, 0xc
push dword [ebp - 0x2c]
push 0
call fcn.0040538c
add esp, 8
push 0x464b1c
push str.4__s
push dword [ebp - 0x2c]
call fcn.004052c4
add esp, 0xc
push dword [ebp - 0x2c]
push 0
call fcn.0040538c
add esp, 8
push 0x464c1c
push str.5__s
push dword [ebp - 0x2c]
call fcn.004052c4
add esp, 0xc
push dword [ebp - 0x2c]
push 0
call fcn.0040538c
add esp, 8
push 0x464c3c
push str.6__s
push dword [ebp - 0x2c]
call fcn.004052c4
add esp, 0xc
push dword [ebp - 0x2c]
push 0
call fcn.0040538c
add esp, 8
mov edx, dword [ebp - 0x74]
inc edx
push edx
push str.7__d
push dword [ebp - 0x2c]
call fcn.004052c4
add esp, 0xc
push dword [ebp - 0x2c]
push 0
call fcn.0040538c
add esp, 8
mov dword [ebp - 0x3c], 1
cmp word [ebp - 0x16], 0
jne 0x40234f
mov word [ebp - 0x1a], 0
jmp 0x402360
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 0x4026a3
movzx edx, word [ebp - 0x14]
movzx ecx, word [ebp - 0x12]
lea eax, [ecx + ecx*2]
lea ecx, [eax*8 + 0x44f7f8]
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.004013da
add esp, 0x10
fstp qword [ebp - 0x44]
cmp dword [0x464b18], 0
je 0x4023d2
push 0x453b3d
lea eax, [ebp - 0x1d8]
push eax
call fcn.004415c8
add esp, 8
jmp 0x402691
cmp dword [0x464b14], 0
je 0x4023f1
push 0x453b3f
lea edx, [ebp - 0x1d8]
push edx
call fcn.004415c8
add esp, 8
jmp 0x4023f8
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, 0x44f18c
mov dword [ebp - 0x84], eax
jmp 0x40244b
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 0x402477
fld qword [ebp - 0x44]
mov edx, dword [ebp - 0x84]
fdiv qword [edx + 8]
fadd qword [0x4027fc]
mov ecx, dword [ebp - 0x84]
fcomp qword [ecx + 0x20]
fnstsw ax
sahf
jae 0x40241e
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.004415f8
pop ecx
lea edx, [ebp - 0x1d8]
add eax, edx
mov dword [ebp - 0x48], eax
push dword [ebp - 0x40]
push dword [ebp - 0x44]
call fcn.00448980
add esp, 8
fcomp dword [0x402804]
fnstsw ax
sahf
jbe 0x4024cc
push 0x453b41
push dword [ebp - 0x48]
call fcn.004415c8
add esp, 8
jmp 0x402647
push dword [ebp - 0x40]
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x84]
push dword [ecx + 0x10]
push 0x453b46
push dword [ebp - 0x48]
call fcn.00444f70
add esp, 0x14
push 0x2e
push dword [ebp - 0x48]
call fcn.004416f1
add esp, 8
test eax, eax
je 0x402546
push dword [ebp - 0x48]
call fcn.004415f8
pop ecx
mov dword [ebp - 0x4c], eax
jmp 0x40250d
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 1
jle 0x402523
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
movsx ecx, byte [eax + edx - 1]
cmp ecx, 0x30
je 0x40250a
cmp dword [ebp - 0x4c], 0
jle 0x40253c
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
movsx ecx, byte [eax + edx - 1]
cmp ecx, 0x2e
jne 0x40253c
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.004415f8
pop ecx
mov dword [ebp - 0x54], eax
xor eax, eax
mov dword [ebp - 0x4c], eax
jmp 0x40257c
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x4c]
movsx edx, byte [edx + eax]
push edx
call fcn.00445f24
pop ecx
test eax, eax
je 0x402579
inc dword [ebp - 0x58]
inc dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
cmp ecx, dword [ebp - 0x54]
jge 0x402593
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
movsx ecx, byte [eax + edx]
cmp ecx, 0x2e
jne 0x402561
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x54]
jge 0x4025c6
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
movsx eax, byte [edx + ecx]
push eax
call fcn.00445f24
pop ecx
test eax, eax
je 0x4025b3
inc dword [ebp - 0x5c]
inc dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
cmp edx, dword [ebp - 0x54]
jl 0x40259b
jmp 0x4025c6
dec dword [ebp - 0x5c]
dec dword [ebp - 0x54]
cmp dword [ebp - 0x5c], 0
jle 0x4025f3
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0x5c]
cmp ecx, 5
jle 0x4025f3
cmp dword [ebp - 0x54], 1
jle 0x4025f3
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x54]
movsx ecx, byte [eax + edx - 1]
push ecx
call fcn.00445f24
pop ecx
test eax, eax
jne 0x4025c0
cmp dword [ebp - 0x54], 0
jle 0x40260c
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x54]
movsx ecx, byte [eax + edx - 1]
cmp ecx, 0x2e
jne 0x40260c
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 0x402647
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.004415c8
add esp, 8
lea ecx, [ebp - 0x1d8]
push ecx
mov eax, dword [ebp - 0x84]
push dword [eax + 0x14]
push 0x453b4c
push dword [ebp - 0x2c]
call fcn.004052c4
add esp, 0x10
push dword [ebp - 0x2c]
push 0
call fcn.0040538c
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.0040391c
add esp, 0xc
inc word [ebp - 0x14]
mov ax, word [ebp - 0x14]
cmp ax, word [ebp - 0x1a]
jb 0x402374
cmp word [ebp - 0x1e], 0
jbe 0x40274f
mov word [ebp - 0x10], 0
mov dx, word [ebp - 0x10]
cmp dx, word [ebp - 0x1e]
jae 0x402710
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 0x402702
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 0x4026be
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 0x453b60
push dword [ebp - 0x2c]
call fcn.004052c4
add esp, 0x10
push dword [ebp - 0x2c]
push 0
call fcn.0040538c
add esp, 8
inc dword [ebp - 0x70]
cmp word [ebp - 0x16], 0
je 0x402773
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 0x4021d7
inc word [ebp - 0x12]
cmp word [ebp - 0x12], 7
jb 0x4021be
cmp dword [ebp - 0x3c], 0
je 0x402798
push 0x453b66
push dword [ebp - 0x2c]
call fcn.004052c4
add esp, 8
inc dword [ebp - 0x74]
cmp dword [ebp - 0x3c], 0
jne 0x4021b3
add word [ebp - 0x36], 2
movzx eax, word [ebp - 0x36]
mov edx, dword [ebp - 4]
cmp byte [edx + eax], 0
jne 0x401f6d
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.0040391c
pop ecx
cmp dword [ebp - 0x2c], 0
je 0x4027ec
push dword [ebp - 0x2c]
call fcn.00442e70
pop ecx
mov eax, 1
jmp 0x4027ee
xor eax, eax
mov esp, ebp
pop ebp
ret