Function at 0x4084f0
Capabilities:
Hide graphical window
Resolve function by parsing pe exports
Suspend thread

Disassembly:
push 0xffffffffffffffff
push 0x475c52
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a7534]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
lea ecx, [esp + 0x34]
call fcn.0046bf10
xor ebx, ebx
mov dword [esp + 0x98], ebx
test byte [0x4b17d0], 1
mov dword [esp + 0x1c], ebx
jne 0x408557
or dword [0x4b17d0], 1
mov ecx, 0x4b17a0
call fcn.00468ff0
push 0x479d50
call fcn.00446932
add esp, 4
lea eax, [esp + 0x1c]
push eax
call fcn.0041b4a0
mov esi, eax
call fcn.0041a660
test al, al
je 0x408905
cmp esi, 3
je 0x408905
cmp esi, ebx
je 0x40871b
cmp esi, 1
je 0x40871b
call fcn.00410240
mov esi, eax
call fcn.00410570
mov dword [esp + 0x40], ebx
mov byte [esp + 0x44], bl
mov dword [esp + 0x3c], vtable.DLProductOnBasicUIMsgFun.0
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x38]
push edx
mov ecx, 0x4829b8
mov byte [esp + 0xa0], 3
call fcn.00406420
add esp, 8
test al, al
jne 0x40862d
call fcn.00410240
mov esi, eax
call fcn.00410270
lea ecx, [esp + 0x34]
call fcn.0046c290
mov eax, 0x4add68
call fcn.0040bcf0
mov esi, 0x4add68
call fcn.0040fb70
push 0x482f50
mov ecx, esi
call fcn.0040f570
mov eax, esi
call fcn.0040fa40
push ebx
call fcn.004476fc
lea eax, [esp + 0x38]
add esp, 4
push eax
call fcn.0041a380
mov ecx, dword [0x4ac788]
add esp, 4
push ecx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
jmp 0x408e04
call fcn.00410240
mov esi, eax
call fcn.00410270
mov eax, 0x4add68
call fcn.0040bcf0
push 0x4add68
call fcn.0040fd20
mov esi, 0x4add68
call fcn.0040fb70
push 0x483028
mov ecx, esi
call fcn.0040f570
mov eax, esi
call fcn.0040bcf0
mov edx, dword [0x4add6c]
push 5
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
push ebx
call fcn.004476fc
add esp, 4
sub eax, 0x13560
sbb edx, ebx
push edx
push eax
call fcn.0041a3d0
mov eax, dword [0x4ac788]
add esp, 8
push eax
call dword [sym.imp.KERNEL32.dll_SuspendThread]
push 0x482ef8
mov ecx, esi
call fcn.0040f570
mov ebx, 0x4829b8
call fcn.004060f0
test al, al
jne 0x4086fd
lea ecx, [esp + 0x24]
call fcn.00468ff0
push 0x482f10
push 0x482c68
lea ecx, [esp + 0x2c]
call fcn.00469230
mov ecx, eax
call fcn.00469230
mov eax, esi
call fcn.0040fa00
lea ecx, [esp + 0x24]
call fcn.00468b10
push eax
mov ecx, esi
call fcn.0040f570
lea ecx, [esp + 0x24]
call fcn.00468c30
push 0x482f28
mov ecx, 0x4add68
call fcn.0040f570
mov eax, 0x4add68
call fcn.0040fa00
jmp 0x408e04
test byte [0x4b17c8], 1
jne 0x40873e
or dword [0x4b17c8], 1
push 0x479d00
mov byte [0x4b17b4], bl
call fcn.00446932
add esp, 4
mov esi, 0x4b17b0
call fcn.00410570
mov dword [esp + 0x40], ebx
mov byte [esp + 0x44], bl
mov dword [esp + 0x3c], vtable.DLProductOnBasicUIMsgFun.0
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x38]
push edx
mov ecx, 0x4829b8
mov byte [esp + 0xa0], 1
call fcn.00406420
add esp, 8
test al, al
jne 0x408795
call fcn.00410240
mov esi, eax
call fcn.00410270
lea ecx, [esp + 0x34]
call fcn.0046c290
jmp 0x408e04
call fcn.00410240
mov esi, eax
call fcn.00410270
mov esi, dword [0x4ac7bc]
cmp esi, dword [0x4add6c]
je 0x4087b9
mov edi, 0x4add68
call fcn.0040bd10
push 0x4add68
call fcn.0040fd20
lea ecx, [esp + 0x4c]
call fcn.00468ff0
mov esi, 0x4add68
mov byte [esp + 0x98], 2
call fcn.0040fb70
mov eax, dword [esp + 0x1c]
push 0x482eb0
push eax
push 0x482e28
lea ecx, [esp + 0x58]
call fcn.00469230
mov ecx, eax
call fcn.00469260
mov ecx, eax
call fcn.00469230
lea ecx, [esp + 0x4c]
call fcn.00468ae0
mov ecx, dword [0x4add6c]
mov ebp, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x68
push ecx
mov esi, eax
call ebp
cmp eax, ebx
je 0x40882c
push esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov esi, dword [0x4ac7bc]
cmp esi, dword [0x4add6c]
je 0x408844
mov edi, 0x4add68
call fcn.0040bd10
mov edx, dword [0x4add6c]
push 5
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x4ac788]
push eax
call dword [sym.imp.KERNEL32.dll_SuspendThread]
mov ecx, dword [0x4add6c]
push 0x68
push ecx
call ebp
cmp eax, ebx
je 0x40887a
push 0x482ef8
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov ebx, 0x4829b8
call fcn.004060f0
test al, al
jne 0x4088d2
lea ecx, [esp + 0x24]
call fcn.00468ff0
push 0x482f10
push 0x482c68
lea ecx, [esp + 0x2c]
call fcn.00469230
mov ecx, eax
call fcn.00469230
mov eax, 0x4add68
call fcn.0040fa00
lea ecx, [esp + 0x24]
call fcn.00468b10
push eax
mov ecx, 0x4add68
call fcn.0040f570
lea ecx, [esp + 0x24]
call fcn.00468c30
mov edx, dword [0x4add6c]
push 0x68
push edx
call ebp
test eax, eax
je 0x4088ed
push 0x482f28
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, 0x4add68
call fcn.0040fa00
lea ecx, [esp + 0x4c]
call fcn.00468c30
jmp 0x408e04
test byte [0x4b17c8], 1
jne 0x408928
or dword [0x4b17c8], 1
push 0x479d00
mov byte [0x4b17b4], bl
call fcn.00446932
add esp, 4
mov esi, 0x4b17b0
call fcn.00410570
mov eax, dword [0x4ada7c]
push ebx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
call fcn.0041a660
test al, al
je 0x408e04
call fcn.004170c0
mov ecx, eax
mov eax, 0x4829b8
call fcn.00412fd0
test al, al
je 0x408e04
mov esi, dword [0x4ac7bc]
cmp esi, dword [0x4ada7c]
je 0x40897d
mov edi, 0x4ada78
call fcn.0040bd10
call fcn.004170c0
lea ebp, [eax + 4]
mov eax, ebp
xor esi, esi
call fcn.00410770
test eax, eax
jle 0x4089f8
call fcn.004170c0
mov ecx, dword [ebp + 4]
test ecx, ecx
mov edi, eax
je 0x4089ac
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x4089b1
call fcn.00446243
mov ecx, dword [ebp + 4]
mov edx, dword [edi]
mov edx, dword [edx + 4]
lea eax, [ecx + esi*4]
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
call edx
test al, al
jne 0x4089ea
push 0x4830e4
lea ecx, [esp + 0x38]
call fcn.0046c2f0
mov ecx, eax
call fcn.0046c360
lea ecx, [esp + 0x34]
call fcn.0046c290
mov eax, ebp
add esi, 1
call fcn.00410770
cmp esi, eax
jl 0x408992
call fcn.004170c0
mov edx, dword [eax]
mov edx, dword [edx + 8]
push 1
push 0x4829b8
lea ecx, [esp + 0x3c]
push ecx
mov ecx, eax
call edx
test al, al
jne 0x408a20
push 0x4830f8
jmp 0x408dd3
call fcn.00416d10
test al, al
je 0x408d0f
push 0
call fcn.004476fc
mov ebx, eax
mov eax, 0x4af488
add esp, 4
cmp eax, 0x4afab4
mov dword [esp + 0x28], edx
jne 0x408a50
mov eax, 1
jmp 0x408a77
mov ecx, 0x4af488
cmp ecx, 0x4af3d4
jne 0x408a64
mov eax, 5
jmp 0x408a77
mov edi, 0x4af488
mov esi, 0x4ae690
call fcn.00429560
test eax, eax
jle 0x408a7f
cmp ebx, eax
jl 0x408e04
mov eax, ebp
xor ebx, ebx
call fcn.00410770
test eax, eax
jle 0x408b05
lea esp, [esp]
mov esi, dword [ebp + 4]
test esi, esi
je 0x408c5e
mov ecx, dword [ebp + 8]
mov eax, ecx
sub eax, esi
sar eax, 2
cmp eax, ebx
jbe 0x408c5e
cmp esi, ecx
jbe 0x408ab6
call fcn.00446243
mov dword [esp + 0x28], esi
lea esi, [esi + ebx*4]
cmp esi, dword [ebp + 8]
mov edi, ebp
ja 0x408ac9
cmp esi, dword [ebp + 4]
jae 0x408ace
call fcn.00446243
cmp esi, dword [edi + 8]
jb 0x408ad8
call fcn.00446243
mov esi, dword [esi]
push 1
push 0x4ada78
call fcn.0040ed70
test ebx, ebx
setne dl
mov edi, 0x4adb9c
push edx
push ebx
call fcn.0040deb0
mov eax, ebp
add ebx, 1
call fcn.00410770
cmp ebx, eax
jl 0x408a90
mov eax, ebp
mov esi, 1
call fcn.00410770
cmp eax, esi
jle 0x408bf0
lea esp, [esp]
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x408b33
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x408b38
call fcn.00446243
mov eax, dword [ebp + 4]
lea ebx, [esi*4]
mov ecx, dword [ebx + eax]
cmp byte [ecx + 0x114], 0
je 0x408bde
call fcn.004170c0
mov ecx, dword [ebp + 4]
test ecx, ecx
mov edi, eax
je 0x408b6c
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x408b71
call fcn.00446243
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + eax]
mov edx, dword [edi]
mov edx, dword [edx + 8]
push 1
push ecx
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call edx
push esi
mov eax, 0x4adb9c
call fcn.0040d100
test eax, eax
je 0x408ba7
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x408ba7
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x408bba
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x408bbf
call fcn.00446243
mov eax, dword [ebp + 4]
mov ecx, dword [eax + ebx]
add eax, ebx
add ecx, 0xc4
call fcn.00468b10
push eax
push esi
mov edi, 0x4adb9c
call fcn.0040d600
mov eax, ebp
add esi, 1
call fcn.00410770
cmp esi, eax
jl 0x408b20
mov esi, 0x4adb9c
call fcn.0040d6b0
mov eax, dword [0x4ada7c]
mov edi, dword [sym.imp.USER32.dll_PostMessageW]
push 0
push 0
push 0x50b
push eax
call edi
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x408c63
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp eax, 1
jbe 0x408c63
mov ecx, dword [0x4ada7c]
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x6b
push ecx
call esi
test eax, eax
mov ebx, dword [sym.imp.USER32.dll_SetWindowTextW]
je 0x408c48
push 0x483104
push eax
call ebx
mov edx, dword [0x4ada7c]
push 0x68
push edx
call esi
test eax, eax
je 0x408c9c
push 0x483134
jmp 0x408c99
jmp fcn.00410bf0
mov eax, dword [0x4ada7c]
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x68
push eax
call esi
test eax, eax
mov ebx, dword [sym.imp.USER32.dll_SetWindowTextW]
je 0x408c85
push 0x482200
push eax
call ebx
mov ecx, dword [0x4ada7c]
push 0x6b
push ecx
call esi
test eax, eax
je 0x408c9c
push 0x483104
push eax
call ebx
mov edx, dword [0x4ada7c]
push 0
push 0
push 0x50d
push edx
call edi
mov ecx, dword [0x4adba0]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 2
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
lea eax, [esp + 0x5c]
push eax
push 0
push 0x102b
push ecx
call esi
lea edx, [esp + 0x5c]
push edx
mov eax, 1
push 0
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], eax
mov eax, dword [0x4adba0]
push 0x102b
push eax
call esi
mov ecx, dword [0x4ac788]
push ecx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x409047
mov eax, ebp
xor ebx, ebx
call fcn.00410770
test eax, eax
jle 0x408da8
mov esi, dword [ebp + 4]
test ebx, ebx
setne al
test esi, esi
mov byte [esp + 0x18], al
mov byte [esp + 0x20], al
je 0x408c5e
mov ecx, dword [ebp + 8]
mov eax, ecx
sub eax, esi
sar eax, 2
cmp eax, ebx
jbe 0x408c5e
cmp esi, ecx
jbe 0x408d53
call fcn.00446243
mov dword [esp + 0x28], esi
lea esi, [esi + ebx*4]
cmp esi, dword [ebp + 8]
mov edi, ebp
ja 0x408d66
cmp esi, dword [ebp + 4]
jae 0x408d6b
call fcn.00446243
cmp esi, dword [edi + 8]
jb 0x408d75
call fcn.00446243
mov edx, dword [esp + 0x20]
mov esi, dword [esi]
push edx
push 0x4ada78
call fcn.0040ed70
mov eax, dword [esp + 0x18]
push eax
push ebx
mov edi, 0x4adb9c
call fcn.0040deb0
mov eax, ebp
add ebx, 1
call fcn.00410770
cmp ebx, eax
jl 0x408d20
mov esi, 0x4adb9c
call fcn.0040d6b0
call fcn.004170c0
mov edx, dword [eax]
mov edx, dword [edx + 0xc]
push 0x4829b8
lea ecx, [esp + 0x38]
push ecx
mov ecx, eax
call edx
test al, al
jne 0x408e27
push 0x483160
lea ecx, [esp + 0x38]
call fcn.0046c2f0
mov ecx, eax
call fcn.0046c360
push 0x482634
push 0x482c68
mov ecx, eax
call fcn.0046c360
mov ecx, eax
call fcn.0046c360
lea ecx, [esp + 0x34]
call fcn.0046cff0
lea ecx, [esp + 0x34]
call fcn.0046beb0
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
mov ecx, dword [ebp + 4]
test ecx, ecx
mov esi, dword [sym.imp.USER32.dll_SetWindowTextW]
je 0x408e5d
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp eax, 1
jbe 0x408e5d
mov eax, dword [0x4ada7c]
push 0x6b
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
test eax, eax
je 0x408e87
push 0x48316c
push eax
call esi
jmp 0x408e87
mov ecx, dword [0x4ada7c]
push 0x6b
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
test eax, eax
je 0x408e78
push 0x4831a4
push eax
call esi
mov edx, dword [0x4adbc8]
push 0
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x4831c0
push 0
mov edi, 0x4adb9c
call fcn.0040d600
mov eax, ebp
mov esi, 1
call fcn.00410770
cmp eax, esi
jle 0x408f80
lea esp, [esp]
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x408ec3
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x408ec8
call fcn.00446243
mov eax, dword [ebp + 4]
lea ebx, [esi*4]
mov ecx, dword [ebx + eax]
cmp byte [ecx + 0x114], 0
je 0x408f6e
call fcn.004170c0
mov ecx, dword [ebp + 4]
test ecx, ecx
mov edi, eax
je 0x408efc
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x408f01
call fcn.00446243
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + eax]
mov edx, dword [edi]
mov edx, dword [edx + 8]
push 1
push ecx
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call edx
push esi
mov eax, 0x4adb9c
call fcn.0040d100
test eax, eax
je 0x408f37
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x408f37
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x408f4a
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x408f4f
call fcn.00446243
mov eax, dword [ebp + 4]
mov ecx, dword [eax + ebx]
add eax, ebx
add ecx, 0xc4
call fcn.00468b10
push eax
push esi
mov edi, 0x4adb9c
call fcn.0040d600
mov eax, ebp
add esi, 1
call fcn.00410770
cmp esi, eax
jl 0x408eb0
test byte [0x4b17c8], 1
jne 0x408fa4
or dword [0x4b17c8], 1
push 0x479d00
mov byte [0x4b17b4], 0
call fcn.00446932
add esp, 4
mov edi, 0x482c68
mov ecx, 0x4b17b0
call fcn.00410490
mov eax, dword [0x4ada7c]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
mov ebx, 1
push ebx
push eax
call esi
mov ecx, dword [0x4ada7c]
push 0x43
push 0
push 0
push 0
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov edx, dword [0x4ada7c]
push 0
push 0
push 0x50d
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [0x4adba0]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 2
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
lea eax, [esp + 0x5c]
push eax
push 0
push 0x102b
push ecx
call edi
mov eax, dword [0x4adba0]
lea edx, [esp + 0x5c]
push edx
push 0
push 0x102b
push eax
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x78], ebx
call edi
mov ecx, dword [0x4ac788]
push ecx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
mov edx, dword [0x4adbc8]
push 0
push edx
call esi
mov eax, dword [0x4adbd8]
push 0
push eax
call esi
mov ecx, dword [0x4adbdc]
push 5
push ecx
call esi
mov edx, dword [0x4adbe0]
push 5
push edx
call esi
mov esi, 0x4adb9c
call fcn.0040cf00
mov eax, ebp
xor esi, esi
call fcn.00410770
test eax, eax
jle 0x4090f8
lea esp, [esp]
push 0
push esi
mov edi, 0x4adb9c
call fcn.0040deb0
push esi
call fcn.0040dca0
test eax, eax
mov ecx, dword [ebp + 4]
je 0x4090cb
test ecx, ecx
je 0x4090ba
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x4090bf
call fcn.00446243
mov eax, dword [ebp + 4]
mov ecx, dword [eax + esi*4]
mov byte [ecx + 0x40], 1
jmp 0x4090ea
test ecx, ecx
je 0x4090db
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x4090e0
call fcn.00446243
mov edx, dword [ebp + 4]
mov eax, dword [edx + esi*4]
mov byte [eax + 0x40], 0
mov eax, ebp
add esi, 1
call fcn.00410770
cmp esi, eax
jl 0x409090
xor edi, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov byte [esp + 0x98], 4
xor ebx, ebx
mov eax, ebp
mov dword [esp + 0x18], ebx
call fcn.00410770
test eax, eax
jle 0x409619
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x409136
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x40913b
call fcn.00446243
mov esi, dword [ebp + 4]
lea edi, [ebx*4]
add esi, edi
test byte [0x4b2578], 1
jne 0x409179
or dword [0x4b2578], 1
mov byte [esp + 0x98], 5
call fcn.00416f70
push 0x479d10
call fcn.00446932
add esp, 4
mov byte [esp + 0x98], 4
mov eax, dword [esi]
mov ecx, 0x4b1800
call fcn.00412fd0
test al, al
je 0x4095ff
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x4091a0
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x4091a5
call fcn.00446243
mov ecx, dword [ebp + 4]
mov edx, dword [edi + ecx]
cmp byte [edx + 0x40], 0
jne 0x409266
mov eax, dword [esp + 0x40]
test eax, eax
mov ecx, dword [esp + 0x44]
je 0x4091e5
mov esi, dword [esp + 0x48]
mov edx, ecx
sub edx, eax
sub esi, eax
sar edx, 2
sar esi, 2
cmp edx, esi
jae 0x4091e5
mov eax, ecx
add eax, 4
mov dword [ecx], ebx
mov dword [esp + 0x44], eax
jmp 0x4095ff
cmp eax, ecx
mov dword [esp + 0x20], ecx
jbe 0x4091fa
call fcn.00446243
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x409207
mov edx, ecx
sub edx, eax
sar edx, 2
jne 0x40920b
xor esi, esi
jmp 0x40921f
cmp eax, ecx
mov edi, eax
jbe 0x409216
call fcn.00446243
mov esi, dword [esp + 0x20]
sub esi, edi
sar esi, 2
mov eax, dword [esp + 0x20]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x20]
lea ecx, [esp + 0x44]
call fcn.00411320
mov ecx, dword [esp + 0x40]
cmp ecx, dword [esp + 0x44]
mov edi, ecx
jbe 0x40924b
call fcn.00446243
mov ecx, dword [esp + 0x40]
lea eax, [edi + esi*4]
cmp eax, dword [esp + 0x44]
ja 0x40925c
cmp eax, ecx
jae 0x4095ff
call fcn.00446243
jmp 0x4095ff
push ebx
mov eax, 0x4adb9c
call fcn.0040d100
mov esi, eax
test esi, esi
je 0x4092bb
cmp dword [esi + 0x2c], 0
je 0x4092bb
push 0x482200
push ebx
mov edi, 0x4adb9c
call fcn.0040d600
mov ecx, dword [esi + 0x2c]
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [esi + 0x2c]
push 0x4831cc
push edx
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, dword [esi + 0x2c]
push 0
push 0
push 0x402
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
test byte [0x4b2578], 1
jne 0x4092ed
or dword [0x4b2578], 1
mov byte [esp + 0x98], 6
call fcn.00416f70
push 0x479d10
call fcn.00446932
add esp, 4
mov byte [esp + 0x98], 4
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x409300
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x409305
call fcn.00446243
mov eax, dword [ebp + 4]
lea edi, [ebx*4]
mov ecx, dword [eax + edi]
add eax, edi
mov eax, dword [0x4b1800]
push 1
push ecx
lea edx, [esp + 0x3c]
push edx
mov edx, dword [eax + 8]
mov ecx, 0x4b1800
call edx
test al, al
jne 0x409425
push ebx
mov eax, 0x4adb9c
call fcn.0040d100
test eax, eax
je 0x409352
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x409352
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x4831dc
push ebx
mov edi, 0x4adb9c
call fcn.0040d600
lea ecx, [esp + 0x34]
call fcn.0046cff0
lea ecx, [esp + 0x34]
call fcn.0046c290
mov eax, dword [esp + 0x40]
test eax, eax
mov ecx, dword [esp + 0x44]
je 0x4093a4
mov esi, dword [esp + 0x48]
mov edx, ecx
sub edx, eax
sub esi, eax
sar edx, 2
sar esi, 2
cmp edx, esi
jae 0x4093a4
mov eax, ecx
add eax, 4
mov dword [ecx], ebx
mov dword [esp + 0x44], eax
jmp 0x4095ff
cmp eax, ecx
mov dword [esp + 0x20], ecx
jbe 0x4093b9
call fcn.00446243
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4093c6
mov edx, ecx
sub edx, eax
sar edx, 2
jne 0x4093ca
xor esi, esi
jmp 0x4093de
cmp eax, ecx
mov edi, eax
jbe 0x4093d5
call fcn.00446243
mov esi, dword [esp + 0x20]
sub esi, edi
sar esi, 2
mov eax, dword [esp + 0x20]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x20]
lea ecx, [esp + 0x44]
call fcn.00411320
mov ecx, dword [esp + 0x40]
cmp ecx, dword [esp + 0x44]
mov edi, ecx
jbe 0x40940a
call fcn.00446243
mov ecx, dword [esp + 0x40]
lea eax, [edi + esi*4]
cmp eax, dword [esp + 0x44]
ja 0x40941b
cmp eax, ecx
jae 0x4095ff
call fcn.00446243
jmp 0x4095ff
push 0x4ac7a4
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x4ac7a4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x4adba0]
mov esi, dword [sym.imp.USER32.dll_PostMessageW]
push 1
push ebx
push 0x509
push ecx
call esi
test byte [0x4b2578], 1
jne 0x409484
or dword [0x4b2578], 1
mov byte [esp + 0x98], 7
call fcn.00416f70
push 0x479d10
call fcn.00446932
add esp, 4
mov byte [esp + 0x98], 4
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x409497
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x40949c
call fcn.00446243
mov eax, dword [ebp + 4]
mov edx, dword [eax + edi]
add eax, edi
push edx
mov edx, dword [0x4b1800]
lea eax, [esp + 0x38]
push eax
mov eax, dword [edx + 0xc]
mov ecx, 0x4b1800
call eax
test al, al
mov ecx, dword [0x4adba0]
push 0
push ebx
push 0x509
push ecx
jne 0x4095ac
call esi
push ebx
mov eax, 0x4adb9c
call fcn.0040d100
test eax, eax
je 0x4094f2
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x4094f2
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x4831e8
push ebx
mov edi, 0x4adb9c
call fcn.0040d600
mov eax, dword [esp + 0x40]
test eax, eax
mov ecx, dword [esp + 0x44]
je 0x409532
mov esi, dword [esp + 0x48]
mov edx, ecx
sub edx, eax
sub esi, eax
sar edx, 2
sar esi, 2
cmp edx, esi
jae 0x409532
mov eax, ecx
add eax, 4
mov dword [ecx], ebx
mov dword [esp + 0x44], eax
jmp 0x4095ff
cmp eax, ecx
mov dword [esp + 0x20], ecx
jbe 0x409547
call fcn.00446243
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x409554
mov edx, ecx
sub edx, eax
sar edx, 2
jne 0x409558
xor esi, esi
jmp 0x40956c
cmp eax, ecx
mov edi, eax
jbe 0x409563
call fcn.00446243
mov esi, dword [esp + 0x20]
sub esi, edi
sar esi, 2
mov eax, dword [esp + 0x20]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x20]
lea ecx, [esp + 0x44]
call fcn.00411320
mov ecx, dword [esp + 0x40]
cmp ecx, dword [esp + 0x44]
mov edi, ecx
jbe 0x409598
call fcn.00446243
mov ecx, dword [esp + 0x40]
lea eax, [edi + esi*4]
cmp eax, dword [esp + 0x44]
ja 0x4095a5
cmp eax, ecx
jae 0x4095ff
call fcn.00446243
jmp 0x4095ff
call esi
push ebx
mov eax, 0x4adb9c
call fcn.0040d100
test eax, eax
je 0x4095cd
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x4095cd
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x4831c0
push ebx
mov edi, 0x4adb9c
call fcn.0040d600
push 0
push ebx
call fcn.0040deb0
push ebx
mov eax, edi
call fcn.0040d100
test eax, eax
je 0x4095f5
mov byte [eax + 5], 0
mov esi, 0x4adb9c
call fcn.0040d6b0
add ebx, 1
mov eax, ebp
mov dword [esp + 0x18], ebx
call fcn.00410770
cmp ebx, eax
jl 0x409123
mov edi, dword [esp + 0x44]
lea eax, [esp + 0x3c]
xor esi, esi
call fcn.00410770
test eax, eax
jbe 0x409670
jmp 0x409634
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x409647
sub edi, ecx
sar edi, 2
mov eax, edi
cmp esi, eax
jb 0x409650
call fcn.00446243
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + esi*4]
push 1
push eax
mov edi, 0x4adb9c
call fcn.0040deb0
lea eax, [esp + 0x3c]
add esi, 1
call fcn.00410770
cmp esi, eax
jb 0x409630
mov edx, dword [0x4adbdc]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
xor edi, edi
push edi
push edx
call esi
mov eax, dword [0x4adbe0]
push edi
push eax
call esi
mov ecx, dword [0x4adbd8]
push 5
push ecx
call esi
mov eax, ebp
call fcn.00410770
cmp eax, 1
push 0x6b
jbe 0x4096bc
mov edx, dword [0x4ada7c]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, edi
je 0x4096d8
push 0x4831f8
jmp 0x4096d1
mov eax, dword [0x4ada7c]
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, edi
je 0x4096d8
push 0x48323c
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov ecx, dword [0x4ac788]
push ecx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
mov byte [esp + 0x98], 0
mov eax, dword [esp + 0x40]
cmp eax, edi
je 0x4096fe
push eax
call fcn.00445f7c
add esp, 4
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
jmp 0x409047