Function at 0x418fc0
Capabilities:
Contain obfuscated stackstrings
Get graphical window text
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56aae0
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x5e2500]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
call fcn.00453018
mov eax, dword [esi + 0x20]
mov edi, dword [sym.imp.USER32.dll_GetParent]
push eax
call edi
push eax
call fcn.0045a881
cmp dword [eax + 0xee0], 0
je 0x419751
mov ecx, dword [esi + 0x20]
push 5
push 0
push ecx
call edi
push eax
call fcn.0045a881
mov ecx, eax
call fcn.00419cd0
mov ecx, esi
call fcn.004183c0
mov ecx, esi
call fcn.0040ecd0
mov ecx, 0x5e3c90
call fcn.00429a60
test eax, eax
je 0x41907d
push 0x41b
mov ecx, esi
call fcn.0045e48e
mov ebx, eax
call fcn.0045f83d
mov eax, dword [eax + 8]
push 0
push 0
push 0
push 0
push 0x93
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
mov edx, dword [ebx + 0x20]
push eax
push 0
push 0x172
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x580060
lea ecx, [ebp - 0x14]
call fcn.00404670
lea eax, [ebp - 0x18]
push eax
mov ecx, 0x5e3c90
mov dword [ebp - 4], 0
call fcn.004261a0
mov ebx, dword [eax]
mov edx, dword [ebp - 0x14]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x400
or eax, ecx
mov byte [ebp - 4], 1
jge 0x4190cc
push 0x400
lea ecx, [ebp - 0x14]
call fcn.00401de0
mov edx, dword [ebp - 0x14]
mov eax, 0x400
cmp dword [edx - 8], eax
jge 0x4190e0
push 0x80070057
call fcn.00401330
push ebx
push 0x400
push edx
push 0x580060
mov dword [edx - 0xc], eax
mov eax, dword [ebp - 0x14]
push str.OpenExtractionLocation
xor ecx, ecx
push 0x580298
mov word [eax + 0x800], cx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41912e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0054d87f
add esp, 8
test eax, eax
js 0x4190d6
mov ecx, dword [ebp - 0x14]
cmp eax, dword [ecx - 8]
jg 0x4190d6
mov dword [ecx - 0xc], eax
mov edx, dword [ebp - 0x14]
xor ecx, ecx
mov word [edx + eax*2], cx
push 0x580060
lea ecx, [ebp - 0x10]
call fcn.00404670
lea eax, [ebp - 0x18]
push eax
mov ecx, 0x5e3c90
mov byte [ebp - 4], 2
call fcn.004261a0
mov ebx, dword [eax]
mov edx, dword [ebp - 0x10]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x400
or eax, ecx
mov byte [ebp - 4], 3
jge 0x4191a2
push 0x400
lea ecx, [ebp - 0x10]
call fcn.00401de0
mov edx, dword [ebp - 0x10]
mov eax, 0x400
cmp dword [edx - 8], eax
jge 0x4191b6
push 0x80070057
call fcn.00401330
push ebx
push 0x400
push edx
push 0x580060
mov dword [edx - 0xc], eax
mov eax, dword [ebp - 0x10]
push 0x583bac
xor ecx, ecx
push 0x580298
mov word [eax + 0x800], cx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419204
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0054d87f
add esp, 8
test eax, eax
js 0x4190d6
mov ecx, dword [ebp - 0x10]
cmp eax, dword [ecx - 8]
jg 0x4190d6
mov dword [ecx - 0xc], eax
mov edx, dword [ebp - 0x10]
xor ecx, ecx
mov word [edx + eax*2], cx
call fcn.0044c93b
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41924e
push 0x80004005
call fcn.00401330
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x10]
push ecx
push 0x580348
mov byte [ebp - 4], 4
call fcn.00401b00
add esp, 8
mov ecx, 0x5e3c90
test al, al
je 0x419337
lea edx, [ebp - 0x28]
push edx
call fcn.004261a0
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, 0x400
or eax, ecx
mov byte [ebp - 4], 5
jge 0x4192b5
push 0x400
lea ecx, [ebp - 0x18]
call fcn.00401de0
mov ebx, dword [ebp - 0x18]
mov eax, 0x400
cmp dword [ebx - 8], eax
jge 0x4192c9
push 0x80070057
call fcn.00401330
mov edx, dword [ebp - 0x24]
push edx
push eax
push ebx
push 0x580060
push 0x5843fc
xor ecx, ecx
mov dword [ebx - 0xc], eax
push 0x580298
mov word [ebx + 0x800], cx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419313
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebx - 8]
push eax
push ebx
call fcn.0054d87f
add esp, 8
test eax, eax
js 0x41932d
cmp eax, dword [ebx - 8]
jle 0x4193e9
push 0x80070057
call fcn.00401330
lea edx, [ebp - 0x24]
push edx
call fcn.004261a0
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, 0x400
or eax, ecx
mov byte [ebp - 4], 6
jge 0x41936d
push 0x400
lea ecx, [ebp - 0x18]
call fcn.00401de0
mov ebx, dword [ebp - 0x18]
mov eax, 0x400
cmp dword [ebx - 8], eax
jge 0x419381
push 0x80070057
call fcn.00401330
mov edx, dword [ebp - 0x28]
push edx
push eax
push ebx
push 0x580060
push 0x5843e4
xor ecx, ecx
mov dword [ebx - 0xc], eax
push 0x580298
mov word [ebx + 0x800], cx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4193cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebx - 8]
push eax
push ebx
call fcn.0054d87f
add esp, 8
test eax, eax
js 0x4190d6
cmp eax, dword [ebx - 8]
jg 0x4190d6
lea edx, [ebp - 0x14]
push edx
xor ecx, ecx
mov dword [ebx - 0xc], eax
push 0x580348
mov word [ebx + eax*2], cx
call fcn.00401b00
add esp, 8
test al, al
je 0x419532
lea eax, [ebp - 0x24]
push eax
mov ecx, 0x5e3e60
call fcn.00434540
mov eax, dword [ebx - 0xc]
mov byte [ebp - 4], 7
test eax, eax
jne 0x419430
cmp dword [esi + 0x130], eax
je 0x41946c
test eax, eax
je 0x419448
push 0
mov ecx, 0x5e3e60
call fcn.0042ed60
test eax, eax
jne 0x419448
cmp dword [esi + 0x130], eax
je 0x41946c
cmp dword [ebx - 0xc], 0
je 0x41950f
cmp dword [0x5e3b58], 1
jne 0x41950f
cmp dword [esi + 0x130], 0
jne 0x41950f
mov ecx, 0x5e3c90
call fcn.00429a60
cmp eax, 0xb
jne 0x41948e
mov ecx, 0x5e3c90
call fcn.00429a60
cmp eax, 0xc
je 0x41950f
mov ecx, dword [esi + 0x20]
push ecx
call edi
push eax
call fcn.0045a881
cmp dword [eax + 0xee4], 1
jne 0x4194b1
mov ecx, 0x5e3c90
call fcn.00425a80
test eax, eax
jne 0x4194ba
cmp dword [0x5e3b58], 1
jne 0x41950f
push 0x261
lea edx, [ebp - 0x28]
push edx
mov ecx, 0x5e3c90
call fcn.00426f10
mov eax, dword [eax]
push eax
push 0x3f6
mov ecx, esi
mov byte [ebp - 4], 8
call fcn.0045e4e1
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 7
call fcn.00402000
mov eax, dword [esi + 0xdc]
push 0
push 0
push 0xf1
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 5
lea ecx, [esi + 0xbc]
call fcn.0045e699
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419532
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.FINISH
lea ecx, [ebp - 0x1c]
call fcn.00404670
mov eax, dword [ebp - 0x1c]
push 5
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x2c], esp
push eax
mov byte [ebp - 4], 9
call fcn.00401e40
mov ecx, dword [ebp - 0x2c]
add eax, 0x10
add esp, 4
mov dword [ecx], eax
mov edx, dword [esi + 0x20]
push edx
mov byte [ebp - 4], 0xa
call edi
push eax
call fcn.0045a881
mov ecx, eax
mov byte [ebp - 4], 9
call fcn.0041ea60
push str.BACK_NEXT_CANCEL
lea ecx, [ebp - 0x20]
call fcn.00404670
mov eax, dword [ebp - 0x20]
push 0
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x2c], esp
push eax
mov byte [ebp - 4], 0xb
call fcn.00401e40
mov ecx, dword [ebp - 0x2c]
add eax, 0x10
add esp, 4
mov dword [ecx], eax
mov edx, dword [esi + 0x20]
push edx
mov byte [ebp - 4], 0xc
call edi
push eax
call fcn.0045a881
mov ecx, eax
mov byte [ebp - 4], 0xb
call fcn.0041ea60
mov eax, dword [ebp - 0x1c]
push 1
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x2c], esp
push eax
call fcn.00401e40
mov ecx, dword [ebp - 0x2c]
add eax, 0x10
add esp, 4
mov dword [ecx], eax
mov edx, dword [esi + 0x20]
push edx
mov byte [ebp - 4], 0xd
call edi
push eax
call fcn.0045a881
mov ecx, eax
mov byte [ebp - 4], 0xb
call fcn.0041ec80
mov eax, dword [ebp - 0x20]
push 0
push ecx
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x2c], esp
add eax, 0xfffffff0
push eax
call fcn.00401e40
mov ecx, dword [ebp - 0x2c]
add eax, 0x10
add esp, 4
mov dword [ecx], eax
mov edx, dword [esi + 0x20]
push edx
mov byte [ebp - 4], 0xe
call edi
push eax
call fcn.0045a881
mov ecx, eax
mov byte [ebp - 4], 0xb
call fcn.0041ec80
mov eax, dword [ebp - 0x1c]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x2c], esp
push eax
call fcn.00401e40
mov ecx, dword [ebp - 0x2c]
add eax, 0x10
add esp, 4
mov dword [ecx], eax
mov edx, dword [esi + 0x20]
push edx
mov byte [ebp - 4], 0xf
call edi
push eax
call fcn.0045a881
mov ecx, eax
mov byte [ebp - 4], 0xb
call fcn.0041efe0
mov eax, dword [esi + 0x20]
push 0
push 0x3025
push 0x401
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esi + 0x20]
push ecx
call edi
push eax
call fcn.0045a881
mov ecx, eax
call fcn.0041a840
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4196c5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4196e8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419708
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41972b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x419751
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret