Function at 0x414f90
Capabilities:
Create thread
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55f828
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb8
push ebx
mov ebx, dword [0x5a36ac]
push esi
push edi
sub esp, 0x18
mov dword [ebp - 0x34], ebx
mov ecx, esp
push 7
push str.product
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x30]
call fcn.00437680
mov ecx, esp
mov dword [ebp - 4], 0
push 7
push str.started
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x60]
call fcn.00437680
mov ecx, esp
mov byte [ebp - 4], 1
push 0x11
push str.ui_creation_error
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x38]
call fcn.00437680
mov ecx, esp
mov byte [ebp - 4], 2
push 0x19
push str.waiting_for_UI_connection
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x5c]
call fcn.00437680
mov ecx, esp
mov byte [ebp - 4], 3
push 0x1c
push str.waiting_for_windows_creation
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x58]
call fcn.00437680
mov ecx, esp
mov byte [ebp - 4], 4
push 0xf
push str.windows_created
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x14]
call fcn.00437680
add esp, 0x18
mov byte [ebp - 4], 5
mov edx, dword [eax]
mov ecx, edx
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4150f3
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x78]
call fcn.00424490
mov byte [ebp - 4], 7
or edi, 0xffffffff
mov edx, dword [ebp - 0x14]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41512d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
sub esp, 0x18
mov ecx, esp
push 0x27
push str._app_:__init_:__engineInit_:_true
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x54]
call fcn.00437680
add esp, 0x18
push 0x3e8
mov byte [ebp - 4], 8
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00413290
test al, al
jne 0x415183
push 0
mov ecx, ebx
call fcn.004161f0
jmp 0x416066
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x41614d
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
push 0x57ece0
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 9
call fcn.00425090
test al, al
jne 0x4151c1
push 0
push 0x57ece0
lea ecx, [ebp - 0x14]
call fcn.00425360
mov byte [ebp - 4], 0xa
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x416157
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
push 0x57ece0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0xb
call fcn.00425090
test al, al
jne 0x415203
push 0
push 0x57ece0
lea ecx, [ebp - 0x10]
call fcn.00425360
mov byte [ebp - 4], 0xc
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x416161
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
push 0x57ece0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xd
call fcn.00425090
test al, al
jne 0x415245
push 0
push 0x57ece0
lea ecx, [ebp - 0x1c]
call fcn.00425360
push ecx
mov byte [ebp - 4], 0xe
mov esi, esp
mov dword [ebp - 0x24], esi
mov ecx, dword [ebp - 0x60]
lea ecx, [ecx - 0x10]
call fcn.00425550
add eax, 0x10
lea ecx, [ebp - 0x18]
mov dword [esi], eax
call fcn.00437b50
mov edi, eax
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x24], esi
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.00425550
add eax, 0x10
lea ecx, [ebp - 0x2c]
mov dword [esi], eax
call fcn.00437b50
add esp, 4
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x10
push ecx
lea ecx, [ebp - 0x10]
mov edx, edi
push ecx
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, eax
call fcn.004470d0
mov edx, dword [ebp - 0x2c]
or edi, 0xffffffff
add esp, 0xc
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4152c4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4152de
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4152f8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x10]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415312
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov eax, edi
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415330
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor esi, esi
call fcn.00404f00
mov ecx, ebx
call fcn.00413a90
test al, al
jne 0x415370
inc esi
cmp esi, 0x12c
jge 0x415412
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], 0x3e8
mov dword [ebp - 0x24], 0
call fcn.0041aea0
mov ecx, ebx
call fcn.00413a90
test al, al
je 0x415342
mov eax, dword [ebx + 0x2c]
xor esi, esi
cmp byte [eax + 0x78], 0
jne 0x4153a9
nop dword [eax + eax]
inc esi
cmp esi, 0x32
jge 0x4155e3
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], 0x3e8
mov dword [ebp - 0x24], 0
call fcn.0041aea0
mov eax, dword [ebx + 0x2c]
cmp byte [eax + 0x78], 0
je 0x415380
mov ecx, ebx
call fcn.00410cb0
mov ecx, ebx
call fcn.00410f90
mov ecx, ebx
call fcn.00404150
mov ecx, ebx
xor esi, esi
call fcn.00404dd0
test al, al
jne 0x4153fe
nop dword [eax + eax]
inc esi
cmp esi, 0x12c
jge 0x415607
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], 0x3e8
mov dword [ebp - 0x24], 0
call fcn.0041aea0
mov ecx, ebx
call fcn.00404dd0
test al, al
je 0x4153d0
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x41616b
jmp 0x415947
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x416175
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
push 0x57ece0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x11
call fcn.00425090
test al, al
jne 0x415450
push 0
push 0x57ece0
lea ecx, [ebp - 0x1c]
call fcn.00425360
mov byte [ebp - 4], 0x12
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x41617f
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
push 0x57ece0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x13
call fcn.00425090
test al, al
jne 0x415492
push 0
push 0x57ece0
lea ecx, [ebp - 0x10]
call fcn.00425360
mov byte [ebp - 4], 0x14
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x416189
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
push 0x57ece0
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x15
call fcn.00425090
test al, al
jne 0x4154d4
push 0
push 0x57ece0
lea ecx, [ebp - 0x14]
call fcn.00425360
push ecx
mov byte [ebp - 4], 0x16
mov esi, esp
mov dword [ebp - 0x24], esi
mov ecx, dword [ebp - 0x5c]
lea ecx, [ecx - 0x10]
call fcn.00425550
add eax, 0x10
lea ecx, [ebp - 0x2c]
mov dword [esi], eax
call fcn.00437b50
mov edi, eax
mov byte [ebp - 4], 0x17
mov dword [ebp - 0x24], esi
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.00425550
add eax, 0x10
lea ecx, [ebp - 0x18]
mov dword [esi], eax
call fcn.00437b50
add esp, 4
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x18
push ecx
lea ecx, [ebp - 0x10]
mov edx, edi
push ecx
lea ecx, [ebp - 0x14]
push ecx
mov ecx, eax
call fcn.004470d0
mov edx, dword [ebp - 0x18]
or edi, 0xffffffff
add esp, 0xc
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415553
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41556d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415587
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x10]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4155a1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov eax, edi
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4155bf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x3e8
call eax
call fcn.00404f00
push 1
mov ecx, ebx
call fcn.004161f0
call fcn.00416610
jmp 0x416066
call fcn.00404f00
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x3e8
call eax
push 1
mov ecx, ebx
call fcn.004161f0
call fcn.00416610
jmp 0x416066
sub esp, 0x18
mov ecx, esp
push 0x39
push str.main_wsoffer_wsstart_menu_wssearch_wssettings_ws
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x18]
call fcn.00437680
add esp, 0x18
mov byte [ebp - 4], 0x19
mov edx, dword [eax]
mov ecx, edx
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415657
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x50]
call fcn.00424490
mov edx, dword [ebp - 0x18]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41568a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1c
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x416193
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x1d
mov edx, 0x5760f0
mov eax, dword [ebx + 0x48]
mov esi, 0x5760f4
mov ecx, edx
mov edi, edx
cmp byte [eax + 0x78], 0
mov eax, dword [ebx + 0x44]
cmove ecx, esi
mov dword [ebp - 0x18], ecx
mov ecx, edx
cmp byte [eax + 0x78], 0
mov eax, dword [ebx + 0x34]
cmove ecx, esi
mov dword [ebp - 0x2c], ecx
mov ecx, edx
cmp byte [eax + 0x78], 0
mov eax, dword [ebx + 0x3c]
mov ebx, edx
cmove ecx, esi
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x34]
cmp byte [eax + 0x78], 0
cmove ebx, esi
mov eax, dword [ecx + 0x40]
cmp byte [eax + 0x78], 0
mov eax, dword [ecx + 0x38]
cmove edi, esi
mov esi, edx
cmp byte [eax + 0x78], 0
mov eax, 0x5760f4
cmove esi, eax
mov eax, dword [ecx + 0x2c]
cmp byte [eax + 0x78], 0
mov eax, 0x5760f4
cmove edx, eax
sub esp, 0x18
lea eax, [ebp - 0x50]
mov dword [ebp - 0x10], edx
mov ecx, esp
push eax
call fcn.00424b70
lea ecx, [ebp - 0x24]
call fcn.00437900
mov byte [ebp - 4], 0x1e
push dword [ebp - 0x18]
push dword [ebp - 0x2c]
push dword [ebp - 0x14]
push ebx
push edi
push esi
push dword [ebp - 0x10]
push dword [eax]
lea eax, [ebp - 0x1c]
push eax
call fcn.0041a6d0
mov byte [ebp - 4], 0x1d
or esi, 0xffffffff
mov edx, dword [ebp - 0x24]
add esp, 0x3c
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415779
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x41619d
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
push 0x57ece0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x1f
call fcn.00425090
test al, al
jne 0x4157b7
push 0
push 0x57ece0
lea ecx, [ebp - 0x10]
call fcn.00425360
mov byte [ebp - 4], 0x20
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x4161a7
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
push 0x57ece0
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x21
call fcn.00425090
test al, al
jne 0x4157f9
push 0
push 0x57ece0
lea ecx, [ebp - 0x14]
call fcn.00425360
push ecx
mov byte [ebp - 4], 0x22
mov esi, esp
mov dword [ebp - 0x2c], esi
mov ecx, dword [ebp - 0x58]
lea ecx, [ecx - 0x10]
call fcn.00425550
add eax, 0x10
lea ecx, [ebp - 0x18]
mov dword [esi], eax
call fcn.00437b50
mov edi, eax
mov byte [ebp - 4], 0x23
mov dword [ebp - 0x2c], esi
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.00425550
add eax, 0x10
lea ecx, [ebp - 0x24]
mov dword [esi], eax
call fcn.00437b50
add esp, 4
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x24
push ecx
lea ecx, [ebp - 0x14]
mov edx, edi
push ecx
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, eax
call fcn.004470d0
mov edx, dword [ebp - 0x24]
or edi, 0xffffffff
add esp, 0xc
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415878
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415892
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4158ac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1d
mov eax, edi
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4158ca
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00404f00
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x3e8
call eax
mov ecx, dword [ebp - 0x34]
push 1
call fcn.004161f0
call fcn.00416610
mov edx, dword [ebp - 0x1c]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415904
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x3c]
cmp ecx, 8
jb 0x416066
mov edx, dword [ebp - 0x50]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x415938
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4161b1
push ecx
push edx
call fcn.00532241
add esp, 8
jmp 0x416066
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
push 0x57ece0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x25
call fcn.00425090
test al, al
jne 0x415976
push 0
push 0x57ece0
lea ecx, [ebp - 0x1c]
call fcn.00425360
mov byte [ebp - 4], 0x26
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x4161b6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
push 0x57ece0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x27
call fcn.00425090
test al, al
jne 0x4159b8
push 0
push 0x57ece0
lea ecx, [ebp - 0x10]
call fcn.00425360
mov byte [ebp - 4], 0x28
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x4161c0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
push 0x57ece0
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x29
call fcn.00425090
test al, al
jne 0x4159fa
push 0
push 0x57ece0
lea ecx, [ebp - 0x14]
call fcn.00425360
sub esp, 0x18
mov byte [ebp - 4], 0x2a
lea eax, [ebp - 0x78]
mov ecx, esp
push eax
call fcn.00424b70
lea ecx, [ebp - 0x18]
call fcn.00437900
mov edi, eax
add esp, 0x14
mov byte [ebp - 4], 0x2b
mov esi, esp
mov dword [ebp - 0x2c], esi
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.00425550
add eax, 0x10
lea ecx, [ebp - 0x24]
mov dword [esi], eax
call fcn.00437b50
add esp, 4
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x2c
push ecx
lea ecx, [ebp - 0x10]
mov edx, edi
push ecx
lea ecx, [ebp - 0x14]
push ecx
mov ecx, eax
call fcn.004470d0
mov edx, dword [ebp - 0x24]
or esi, 0xffffffff
add esp, 0xc
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415a76
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415a90
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415aaa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x10]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415ac4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov eax, esi
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415ae2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x7e
push ecx
mov edi, esp
push ecx
mov esi, esp
mov dword [ebp - 0x24], esi
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx - 0x10]
call fcn.00425550
add eax, 0x10
mov ecx, edi
mov dword [esi], eax
call fcn.00437b50
add esp, 4
mov ecx, ebx
call fcn.00403fc0
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
lea eax, [ebp - 0xc4]
push eax
push 0
push ebx
push 0x4226d0
push 0
push 0
call esi
mov ecx, dword [ebx + 0x1c]
mov dword [ecx], eax
lea eax, [ebp - 0xc0]
push eax
push 0
push ebx
push 0x4226c0
push 0
push 0
call esi
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 4], eax
lea eax, [ebp - 0xbc]
push eax
push 0
push ebx
push 0x4226b0
push 0
push 0
call esi
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 8], eax
lea eax, [ebp - 0xb8]
push eax
push 0
push ebx
push 0x422670
push 0
push 0
call esi
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 0xc], eax
lea eax, [ebp - 0xb4]
push eax
push 0
push ebx
push 0x422660
push 0
push 0
call esi
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 0x10], eax
lea eax, [ebp - 0xb0]
push eax
push 0
push ebx
push 0x422650
push 0
push 0
call esi
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0xac]
push eax
push 0
push ebx
push 0x422640
push 0
push 0
call esi
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 0x18], eax
lea eax, [ebp - 0xa8]
push eax
push 0
push ebx
push 0x422630
push 0
push 0
call esi
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 0x1c], eax
lea eax, [ebp - 0xa4]
push eax
push 0
push ebx
push 0x422500
push 0
push 0
call esi
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 0x20], eax
lea eax, [ebp - 0xa0]
push eax
push 0
push ebx
push 0x422480
push 0
push 0
call esi
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 0x24], eax
lea eax, [ebp - 0x9c]
push eax
push 0
push ebx
push 0x422470
push 0
push 0
call esi
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 0x28], eax
lea eax, [ebp - 0x98]
push eax
push 0
push ebx
push 0x422460
push 0
push 0
call esi
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + 0x2c], eax
lea eax, [ebp - 0x94]
push eax
push 0
push ebx
push 0x422450
push 0
push 0
call esi
mov ecx, dword [ebx + 0x1c]
sub esp, 0x18
mov dword [ecx + 0x30], eax
mov ecx, esp
push 0x20
push 0x577318
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x24]
call fcn.00437680
add esp, 0x18
mov byte [ebp - 4], 0x2d
mov edx, dword [eax]
mov dword [ebp - 0x90], 0
mov ecx, edx
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415cc5
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x90]
call fcn.00424490
mov byte [ebp - 4], 0x2f
or edi, 0xffffffff
mov edx, dword [ebp - 0x24]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415d02
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 1
push ecx
mov esi, esp
mov byte [ebx + 0x4c0], 1
sub esp, 0x18
lea eax, [ebp - 0x90]
mov ecx, esp
push eax
call fcn.00424b70
mov ecx, esi
call fcn.00437900
add esp, 0x18
mov ecx, ebx
call fcn.00403fc0
push 0xffffffffffffffff
push 1
push dword [ebx + 0x1c]
push 0xd
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
call fcn.004516a0
cmp eax, 1
jne 0x415ea2
sub esp, 0x18
mov ecx, esp
push 0x11
push str.ui_closing_failed
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x18]
call fcn.00437680
add esp, 0x18
mov byte [ebp - 4], 0x30
mov edx, dword [eax]
mov ecx, edx
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415da0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x50]
call fcn.00424490
mov byte [ebp - 4], 0x32
mov eax, edi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415dd7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov dword [ebp - 0x2c], esp
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x5a373c
call fcn.00424b70
mov ecx, esi
call fcn.00437900
add esp, 0x14
mov byte [ebp - 4], 0x33
mov esi, esp
mov dword [ebp - 0x34], esp
mov dword [ebp - 0x14], esi
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x4161ca
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push 0x57ece0
mov ecx, esi
mov byte [ebp - 4], 0x34
call fcn.00425090
test al, al
jne 0x415e3d
push 0
push 0x57ece0
mov ecx, esi
call fcn.00425360
push ecx
mov byte [ebp - 4], 0x35
lea eax, [ebp - 0x50]
mov dword [ebp - 0x14], esp
mov esi, esp
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00424b70
mov ecx, esi
call fcn.00437900
add esp, 0x14
mov byte [ebp - 4], 0x36
mov edi, esp
push ecx
mov esi, esp
mov dword [ebp - 0x10], esi
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00425550
add eax, 0x10
mov ecx, edi
mov dword [esi], eax
call fcn.00437b50
add esp, 4
mov byte [ebp - 4], 0x32
call fcn.00447270
add esp, 0x10
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x50]
call fcn.00425650
jmp 0x41602f
cmp eax, 2
jne 0x416032
sub esp, 0x18
mov ecx, esp
push 0xc
push str.ui_not_found
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.00424490
lea ecx, [ebp - 0x18]
call fcn.00437680
add esp, 0x18
mov byte [ebp - 4], 0x37
mov edx, dword [eax]
mov ecx, edx
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
lea esi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415f00
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x50]
call fcn.00424490
mov byte [ebp - 4], 0x39
mov eax, edi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x415f37
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov dword [ebp - 0x2c], esp
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x5a373c
call fcn.00424b70
mov ecx, esi
call fcn.00437900
add esp, 0x14
mov byte [ebp - 4], 0x3a
mov esi, esp
mov dword [ebp - 0x34], esp
mov dword [ebp - 0x14], esi
call fcn.00424e20
mov ecx, eax
test ecx, ecx
je 0x4161d4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
push 0x57ece0
mov ecx, esi
mov byte [ebp - 4], 0x3b
call fcn.00425090
test al, al
jne 0x415f9d
push 0
push 0x57ece0
mov ecx, esi
call fcn.00425360
push ecx
mov byte [ebp - 4], 0x3c
lea eax, [ebp - 0x50]
mov dword [ebp - 0x14], esp
mov esi, esp
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00424b70
mov ecx, esi
call fcn.00437900
add esp, 0x14
mov byte [ebp - 4], 0x3d
mov edi, esp
push ecx
mov esi, esp
mov dword [ebp - 0x10], esi
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00425550
add eax, 0x10
mov ecx, edi
mov dword [esi], eax
call fcn.00437b50
add esp, 4
mov byte [ebp - 4], 0x39
call fcn.00447270
mov byte [ebp - 4], 0x2f
add esp, 0x10
mov ecx, dword [ebp - 0x3c]
cmp ecx, 8
jb 0x41602f
mov edx, dword [ebp - 0x50]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x416025
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4161de
push ecx
push edx
call fcn.00532241
add esp, 8
or edi, 0xffffffff
call fcn.00404f00
mov ecx, ebx
call fcn.004171b0
push dword [ebx + 0x28]
mov dword [ebx + 0x4c4], eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
cmp dword [ebx + 0x4c4], 2
jne 0x41605b
call fcn.00416610
lea ecx, [ebp - 0x90]
call fcn.00425650
mov edx, dword [ebp - 0x54]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x416080
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x64]
cmp ecx, 8
jb 0x4160ba
mov edx, dword [ebp - 0x78]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4160b0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4161de
push ecx
push edx
call fcn.00532241
add esp, 8
mov edx, dword [ebp - 0x58]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4160d4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x5c]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4160ee
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x38]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x416108
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x60]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x416122
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x41613a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
call fcn.005370ef
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
push 0x80004005
call fcn.00425520
call fcn.005370ef
int3