Function at 0x42c980
Capabilities:
Delete file
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x582f78
mov eax, dword fs:[0]
push eax
sub esp, 0x204
mov eax, dword [0x5e4a44]
xor eax, esp
mov dword [esp + 0x200], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5e4a44]
xor eax, esp
push eax
lea eax, [esp + 0x218]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x28], ebx
call fcn.00454925
xor ecx, ecx
xor edi, edi
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x42c9dd
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov dword [esp + 0x220], edi
mov esi, dword [0x5f5208]
call fcn.0055219d
push eax
push esi
lea ecx, [esp + 0x34]
push str._snaka_supdatelist_d.txt
push ecx
call fcn.00403110
mov eax, dword [ebx + 0x29b4]
mov ecx, dword [eax - 0xc]
add ebx, 0x29b4
add esp, 0x10
cmp ecx, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], ebx
jle 0x42ca6c
push 4
push 0x5af994
push eax
call fcn.0056f82c
add esp, 0xc
test eax, eax
je 0x42ca52
mov ebp, ebx
xor ebx, ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x24], ebx
cmp ebp, edi
jne 0x42ca57
mov ebp, 0x5f572c
or esi, 0xffffffff
or edi, esi
test ebx, ebx
jne 0x42cad0
mov eax, dword [ebp]
cmp dword [eax - 0xc], ebx
jg 0x42ca74
or edi, esi
jmp 0x42cad0
xor ebx, ebx
mov dword [esp + 0x24], ebx
jmp 0x42ca52
push 0x3a
push eax
call fcn.005513b5
add esp, 8
test eax, eax
jne 0x42ca88
or edi, 0xffffffff
jmp 0x42cad0
mov ecx, dword [ebp]
sub eax, ecx
mov edi, eax
test edi, edi
jle 0x42cad0
mov eax, dword [ecx - 0xc]
lea ebx, [edi + 1]
test ebx, ebx
jl 0x42cab9
cmp ebx, eax
jge 0x42cab9
add ecx, ebx
push 0x3a
push ecx
call fcn.005513b5
add esp, 8
test eax, eax
je 0x42cab9
sub eax, dword [ebp]
mov esi, eax
jmp 0x42cabc
or esi, 0xffffffff
cmp esi, ebx
jle 0x42cacd
mov edx, dword [ebp]
mov eax, dword [edx - 0xc]
lea ecx, [esi + 1]
cmp ecx, eax
jl 0x42cad0
or esi, 0xffffffff
mov dword [esp + 0x14], 0
cmp esi, 0xffffffff
je 0x42ce2b
push edi
lea edx, [esp + 0x28]
push edx
mov ecx, ebp
call fcn.004027f0
mov eax, esi
sub eax, edi
dec eax
push eax
inc edi
push edi
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebp
mov byte [esp + 0x22c], 1
call fcn.004029f0
mov eax, dword [eax]
push eax
call fcn.005520a9
movzx edx, ax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov dword [esp + 0x5c], edx
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42cb3c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x104
lea ecx, [esp + 0x110]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x10c]
push 0x5c
push edx
call fcn.00554390
mov edi, eax
add esp, 8
test edi, edi
jne 0x42cb8a
lea eax, [esp + 0x10c]
push 0x2f
push eax
call fcn.00554390
mov edi, eax
add esp, 8
test edi, edi
jne 0x42cb8a
lea edi, [esp + 0x10c]
jmp 0x42cb8b
inc edi
push 0x2e
push edi
mov dword [esp + 0x24], edi
call fcn.00552470
add esp, 8
test eax, eax
je 0x42cba4
sub eax, edi
mov ebx, eax
jmp 0x42cbb9
mov ebx, edi
lea ecx, [ebx + 1]
lea esp, [esp]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x42cbb0
sub ebx, ecx
mov edx, dword [0x5f53d4]
mov ecx, dword [ebp]
mov eax, dword [edx - 0xc]
mov ecx, dword [ecx - 0xc]
sub eax, esi
add eax, ecx
lea eax, [eax + ebx + 1]
push eax
mov dword [esp + 0x64], eax
call fcn.00450d15
mov edi, eax
add esp, 4
mov dword [esp + 0x20], edi
test edi, edi
je 0x42cd9e
mov ecx, dword [ebp]
mov eax, dword [ecx - 0xc]
sub eax, esi
push eax
lea eax, [ecx + esi + 1]
push eax
push edi
call fcn.00558100
mov ecx, dword [0x5f53d4]
mov edx, dword [ecx - 0xc]
mov eax, dword [ebp]
mov eax, dword [eax - 0xc]
add esp, 0xc
inc edx
push edx
sub eax, esi
push ecx
add eax, edi
push eax
call fcn.00558100
mov ecx, dword [esp + 0x28]
add esp, 0xc
push ebx
sub edi, ebx
add edi, dword [esp + 0x64]
push ecx
push edi
call fcn.00558100
add esp, 0xc
xor edi, edi
jmp 0x42cc40
mov dword [esp + 0x5c], 0
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42c9d3
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x220], 2
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x5c]
lea edx, [esp + 0x30]
push edx
mov edx, dword [esp + 0x2c]
push eax
push ecx
mov ecx, dword [esp + 0x30]
push edx
lea edx, [esp + 0x30]
call fcn.00416930
mov esi, eax
add esp, 0x14
test esi, esi
je 0x42cd61
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42c9d3
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x50], eax
mov byte [esp + 0x220], 3
mov eax, dword [ebp]
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x1c]
push eax
push ebx
push esi
push ecx
push edi
lea edx, [esp + 0x64]
push 0x5bad74
push edx
call fcn.00403110
add esp, 0x1c
push ebx
push esi
push edi
push str.Download_error__d____d____d_
call fcn.0041bdc0
mov byte [esp + 0x230], 2
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
add esp, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42cd2d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x220], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42cd55
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc edi
cmp edi, 3
jl 0x42cc40
jmp 0x42cd91
mov byte [esp + 0x220], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov dword [esp + 0x14], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42cd91
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00450d0a
add esp, 4
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x42ce17
cmp dword [esp + 0x14], 0
jne 0x42ce17
call fcn.00402900
mov ecx, dword [esp + 0x28]
call fcn.0042c980
mov bl, al
mov byte [esp + 0x220], 0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42cde5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x220], 0xffffffff
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ce10
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, bl
jmp 0x42e6f8
mov byte [esp + 0x220], 0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
jmp 0x42d084
cmp dword [esp + 0x18], 0
je 0x42ce78
mov ecx, dword [esp + 0x18]
call fcn.00402900
mov ecx, dword [esp + 0x28]
call fcn.0042c980
mov bl, al
mov dword [esp + 0x220], 0xffffffff
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ce10
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, bl
jmp 0x42e6f8
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42ce92
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x220], 4
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42ceb6
mov esi, dword [eax]
jmp 0x42cebc
mov esi, dword [0x5f5730]
call fcn.0055219d
push eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push esi
lea ecx, [esp + 0x2c]
push str._s_sch_d_d
push ecx
call fcn.00403110
add esp, 0x14
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42cef6
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x220], 5
mov ebp, dword [esp + 0x20]
xor edi, edi
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42c9d3
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x1c]
push ecx
push 0
mov bl, 6
mov byte [esp + 0x228], bl
mov eax, dword [esp + 0x34]
push 0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
call fcn.00403050
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x234], 7
lea eax, [ebp - 0x10]
mov dword [esp + 0x60], esp
mov esi, esp
push eax
call fcn.00403050
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov byte [esp + 0x234], bl
call fcn.00415e90
add esp, 0x14
test eax, eax
jg 0x42d021
push edi
cmp eax, 0xfffffffe
jne 0x42cfcf
lea edx, [esp + 0x1c]
push 0x5badc4
push edx
call fcn.00403110
mov byte [esp + 0x22c], 5
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x42d006
lea ecx, [esp + 0x1c]
cmp eax, 0xffffffff
jne 0x42d0cf
push 0x5badd8
push ecx
call fcn.00403110
mov byte [esp + 0x22c], 5
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42d012
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc edi
cmp edi, 3
jl 0x42cf14
jmp 0x42d105
mov byte [esp + 0x220], 5
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov dword [esp + 0x14], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d051
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x220], 4
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d079
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x220], 0
lea eax, [ebp - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d09d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test byte [0x5f5988], 1
jne 0x42d184
or dword [0x5f5988], 1
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42d166
push 0x80004005
call fcn.004010d0
push 0x5bade8
push ecx
call fcn.00403110
mov byte [esp + 0x22c], 5
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42d105
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x42d051
call fcn.00402900
mov ecx, dword [esp + 0x28]
call fcn.0042c980
mov bl, al
mov byte [esp + 0x220], 4
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d149
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
mov byte [esp + 0x220], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x42cdd9
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
push 0x5854a0
mov dword [0x5f5984], eax
call fcn.0055104a
add esp, 4
mov esi, dword [esp + 0x2c]
mov ecx, esi
lea edi, [esp + 0x54]
call fcn.004454e0
mov bl, 8
mov byte [esp + 0x220], bl
mov ecx, dword [0x5f5984]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x42d1b7
push 0x80004005
call fcn.004010d0
push ecx
mov ecx, dword [esp + 0x58]
push ecx
call fcn.00551707
add esp, 8
test eax, eax
sete al
test al, al
je 0x42d22b
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov byte [esp + 0x220], 0
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42d1fd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov dword [esp + 0x220], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d224
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x42e6f8
mov esi, dword [esp + 0x28]
push 0
lea ecx, [esi + 0x954]
call fcn.0045ee7a
push 0
lea ecx, [esi + 0x1cf4]
call fcn.0045ee7a
push 0
lea ecx, [esi + 0x20e0]
call fcn.0045ee7a
push 0
lea ecx, [esi + 0x1908]
call fcn.0045ee7a
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42d27d
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x220], 9
mov eax, dword [esp + 0x14]
cmp eax, 1
jne 0x42d2a7
push 0x11
push 0x5badf8
jmp 0x42d2b3
cmp eax, 2
jne 0x42d2bc
push 0x12
push 0x5bae0c
lea ecx, [esp + 0x20]
call fcn.00402ef0
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], 0
jle 0x42d2fb
mov eax, dword [0x5f5984]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.00402e00
push 4
push 0x5bae20
lea ecx, [esp + 0x20]
call fcn.00402e00
mov eax, dword [esp + 0x54]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.00402e00
lea edx, [esp + 0x54]
push edx
mov ecx, 0x5f5984
call fcn.00402bc0
mov byte [esp + 0x220], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d331
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebp, dword [esp + 0x28]
lea ebx, [ebp + 0x2afc]
call fcn.0041d040
call fcn.00412c40
mov edi, eax
call fcn.00412cb0
push 0x5bae28
lea ecx, [esp + 0x24]
call fcn.004024e0
push 0xff00
push ecx
mov byte [esp + 0x228], 0xa
mov ecx, esp
lea edx, [esp + 0x28]
mov dword [esp + 0x38], esp
push edx
push ecx
call fcn.00419f40
add esp, 8
mov esi, ebp
call fcn.00432fc0
mov byte [esp + 0x220], 8
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d3ab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x5bae3c
lea ecx, [esp + 0x24]
call fcn.004024e0
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x5c]
push edx
mov byte [esp + 0x228], 0xb
call fcn.00419f40
add esp, 8
mov byte [esp + 0x220], 0xc
mov esi, dword [eax]
mov eax, dword [ebp + 0x2ae8]
test eax, eax
je 0x42d41f
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x64]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [esp + 0x64]
push eax
mov ecx, ebp
call fcn.00455d6d
mov edx, dword [ebp + 0x20]
push 1
lea ecx, [esp + 0x68]
push ecx
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [ebp + 0x2ae8]
push esi
call fcn.0045ed6d
mov byte [esp + 0x220], 0xb
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d447
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x220], 8
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d46f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x14], 0
jle 0x42e34d
lea ecx, [esp + 0xe4]
call fcn.0046ebc9
push 0
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x104]
mov byte [esp + 0x22c], 0xd
call fcn.0041c0f0
lea ecx, [esp + 0xf8]
push ecx
mov byte [esp + 0x224], 0xe
mov esi, dword [esp + 0x30]
push 0
push esi
lea ecx, [esp + 0xf0]
call fcn.0046ebe1
test eax, eax
je 0x42e264
mov dword [esp + 0x1c], 1
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42d4ed
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x220], 0xf
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42d51f
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x220], 0x10
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42d551
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x14]
push ecx
mov bl, 0x11
lea ecx, [esp + 0xe8]
mov byte [esp + 0x224], bl
call fcn.0046f0e3
test eax, eax
je 0x42e1f7
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
test eax, eax
je case.default.0x42d727
jl 0x42d5be
push str._Server_
push ecx
call fcn.00550eef
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x42d5be
sub eax, ecx
cmp eax, 0xffffffff
je 0x42d5be
mov dword [esp + 0x1c], 1
jmp case.default.0x42d727
cmp dword [ecx - 0xc], 0
jl case.default.0x42d727
push str._Setup_
push ecx
call fcn.00550eef
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x42d5f2
sub eax, ecx
cmp eax, 0xffffffff
je 0x42d5f2
mov dword [esp + 0x1c], 2
jmp case.default.0x42d727
cmp dword [ecx - 0xc], 0
jl case.default.0x42d727
push str._Upgrade_
push ecx
call fcn.00550eef
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x42d626
sub eax, ecx
cmp eax, 0xffffffff
je 0x42d626
mov dword [esp + 0x1c], 3
jmp case.default.0x42d727
cmp dword [ecx - 0xc], 0
jl case.default.0x42d727
push str._Share_
push ecx
call fcn.00550eef
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x42d65a
sub eax, ecx
cmp eax, 0xffffffff
je 0x42d65a
mov dword [esp + 0x1c], 4
jmp case.default.0x42d727
cmp dword [ecx - 0xc], 0
jl case.default.0x42d727
push str._Sub_
push ecx
call fcn.00550eef
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x42d68e
sub eax, ecx
cmp eax, 0xffffffff
je 0x42d68e
mov dword [esp + 0x1c], 5
jmp case.default.0x42d727
cmp dword [ecx - 0xc], 0
jl case.default.0x42d727
push str._Group_
push ecx
call fcn.00550eef
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x42d6c2
sub eax, ecx
cmp eax, 0xffffffff
je 0x42d6c2
mov dword [esp + 0x1c], 6
jmp case.default.0x42d727
cmp dword [ecx - 0xc], 0
jl case.default.0x42d727
push 0x5b0260
push ecx
call fcn.00550eef
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x42d6ea
sub eax, ecx
je case.default.0x42d727
cmp dword [ecx - 0xc], 0
jl case.default.0x42d727
push 0x5af99c
push ecx
call fcn.00550eef
add esp, 8
test eax, eax
je case.default.0x42d727
sub eax, dword [esp + 0x14]
mov esi, eax
cmp esi, 1
jl case.default.0x42d727
mov eax, dword [esp + 0x1c]
dec eax
cmp eax, 5
ja case.default.0x42d727
jmp dword [eax*4 + 0x42e720]
lea edx, [esp + 0xa8]
push edx
call fcn.0041c790
push esi
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x228], 0x12
call fcn.004027f0
mov eax, dword [eax]
push eax
call fcn.005520a9
add esp, 4
lea ecx, [esp + 0x58]
mov dword [esp + 0xa8], eax
call fcn.00402ba0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
sub eax, esi
dec eax
push eax
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x1c]
call fcn.0041c050
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x224], 0x13
call fcn.0040d5f0
push ecx
mov byte [esp + 0x224], 0x14
mov ecx, esp
mov dword [esp + 0x80], esp
push 0x5bae88
call fcn.004024e0
lea ecx, [esp + 0x38]
push ecx
push ecx
mov byte [esp + 0x22c], 0x15
lea edx, [esp + 0x2c]
mov ecx, esp
mov dword [esp + 0x70], esp
push edx
call fcn.004024c0
mov byte [esp + 0x22c], 0x14
call fcn.004334f0
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x40]
sar eax, 2
cmp eax, 5
jb 0x42da01
xor edi, edi
lea esi, [esp + 0x34]
call fcn.00413750
push eax
lea ecx, [esp + 0xb0]
call fcn.00402bc0
mov edi, 1
call fcn.00413750
push eax
lea ecx, [esp + 0xb4]
call fcn.00402bc0
mov edi, 3
call fcn.00413750
push eax
lea ecx, [esp + 0xb8]
call fcn.00402bc0
mov edi, 4
call fcn.00413750
mov eax, dword [eax]
push eax
call fcn.005520a9
mov word [esp + 0xbc], ax
mov eax, dword [esp + 0x48]
mov ecx, eax
sub ecx, dword [esp + 0x44]
add esp, 4
sar ecx, 2
cmp ecx, 6
jb 0x42d88d
mov edi, 5
call fcn.00413750
mov eax, dword [eax]
push eax
call fcn.005520a9
add esp, 4
mov dword [esp + 0xbc], eax
cmp eax, 0x64
mov eax, dword [esp + 0x44]
jae 0x42d89a
mov edx, dword [0x5f5720]
mov dword [esp + 0xbc], edx
mov ecx, eax
sub ecx, dword [esp + 0x40]
sar ecx, 2
cmp ecx, 8
jbe 0x42d8e0
mov edx, dword [0x5f575c]
mov eax, dword [edx + 0x38]
push eax
mov edi, 8
lea esi, [esp + 0x38]
call fcn.00413750
push ecx
mov ecx, esp
mov dword [esp + 0x6c], esp
push eax
call fcn.004024c0
call fcn.0041d240
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x4c]
add esp, 8
mov ecx, eax
sub ecx, dword [esp + 0x40]
sar ecx, 2
cmp ecx, 9
jbe 0x42d926
mov edx, dword [0x5f575c]
mov eax, dword [edx + 0x3c]
push eax
mov edi, 9
lea esi, [esp + 0x38]
call fcn.00413750
push ecx
mov ecx, esp
mov dword [esp + 0x6c], esp
push eax
call fcn.004024c0
call fcn.0041d240
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x4c]
add esp, 8
mov ecx, eax
sub ecx, dword [esp + 0x40]
sar ecx, 2
cmp ecx, 0xa
jbe 0x42d953
mov edi, 0xa
lea esi, [esp + 0x34]
call fcn.00413750
push eax
lea ecx, [esp + 0xcc]
call fcn.00402bc0
mov eax, dword [esp + 0x44]
mov edx, eax
sub edx, dword [esp + 0x40]
sar edx, 2
cmp edx, 0xb
jbe 0x42d980
mov edi, 0xb
lea esi, [esp + 0x34]
call fcn.00413750
push eax
lea ecx, [esp + 0xd0]
call fcn.00402bc0
mov eax, dword [esp + 0x44]
mov ecx, eax
sub ecx, dword [esp + 0x40]
sar ecx, 2
cmp ecx, 0xe
jbe 0x42d9ad
mov edi, 0xe
lea esi, [esp + 0x34]
call fcn.00413750
push eax
lea ecx, [esp + 0xd4]
call fcn.00402bc0
mov eax, dword [esp + 0x44]
mov edx, eax
sub edx, dword [esp + 0x40]
sar edx, 2
cmp edx, 0xf
jbe 0x42d9da
mov edi, 0xf
lea esi, [esp + 0x34]
call fcn.00413750
push eax
lea ecx, [esp + 0xd8]
call fcn.00402bc0
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x40]
sar eax, 2
cmp eax, 0x10
jbe 0x42da01
mov edi, 0x10
lea esi, [esp + 0x34]
call fcn.00413750
push eax
lea ecx, [esp + 0xdc]
call fcn.00402bc0
lea eax, [esp + 0xa8]
push eax
lea edi, [ebp + 0x2b34]
call fcn.00434f60
lea esi, [esp + 0x34]
call fcn.0040d6b0
lea ecx, [esp + 0x20]
jmp 0x42e1c6
push esi
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004027f0
lea ecx, [esp + 0x18]
mov byte [esp + 0x220], 0x16
call fcn.00413340
mov ecx, eax
call fcn.004133d0
inc esi
push esi
lea edx, [esp + 0x60]
push edx
lea ecx, [esp + 0x1c]
call fcn.004027c0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x224], 0x17
call fcn.00402bc0
lea ecx, [esp + 0x5c]
mov byte [esp + 0x220], 0x16
call fcn.00402ba0
lea ecx, [esp + 0x14]
call fcn.00413340
mov ecx, eax
call fcn.004133d0
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], 0
jl 0x42dcd1
push 0x5bae8c
push ecx
call fcn.00550eef
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x42dbae
sub eax, ecx
cmp eax, 0xffffffff
je 0x42dbae
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jle 0x42dae4
push 0x7c
push eax
call fcn.005513b5
add esp, 8
test eax, eax
je 0x42dae4
sub eax, dword [esp + 0x14]
mov edi, eax
jns 0x42db0a
lea eax, [esp + 0x14]
lea esi, [ebp + 0x2b2c]
push eax
mov ecx, esi
call fcn.00402bc0
lea edi, [ebp + 0x2b30]
push 0x5af62d
mov ecx, edi
call fcn.004025c0
jmp 0x42db7d
push edi
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004027f0
lea esi, [ebp + 0x2b2c]
push eax
mov ecx, esi
mov byte [esp + 0x224], 0x18
call fcn.004025a0
lea ecx, [esp + 0x60]
mov byte [esp + 0x220], 0x16
call fcn.00402ba0
inc edi
push edi
lea edx, [esp + 0xa0]
push edx
lea ecx, [esp + 0x1c]
call fcn.004027c0
lea edi, [ebp + 0x2b30]
push eax
mov ecx, edi
mov byte [esp + 0x224], 0x19
call fcn.004025a0
lea ecx, [esp + 0x9c]
mov byte [esp + 0x220], 0x16
call fcn.00402ba0
mov ecx, esi
call fcn.00413340
mov ecx, eax
call fcn.004133d0
mov ecx, edi
call fcn.00413340
mov ecx, eax
call fcn.004133d0
lea ecx, [esp + 0x18]
mov byte [esp + 0x220], bl
call fcn.00402ba0
jmp case.default.0x42d727
cmp dword [ecx - 0xc], 0
jl 0x42dcd1
push 0x5bae9c
push ecx
call fcn.00550eef
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x42dc03
sub eax, ecx
cmp eax, 0xffffffff
je 0x42dc03
mov eax, dword [esp + 0x14]
push eax
call fcn.005520a9
imul eax, eax, 0x3e8
add esp, 4
lea ecx, [esp + 0x18]
mov dword [ebp + 0x2afc], eax
mov byte [esp + 0x220], bl
call fcn.00402ba0
jmp case.default.0x42d727
cmp dword [ecx - 0xc], 0
jl 0x42dcd1
push 0x5baeac
push ecx
call fcn.00550eef
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x42dc52
sub eax, ecx
cmp eax, 0xffffffff
je 0x42dc52
mov ecx, dword [esp + 0x14]
push ecx
call fcn.005520a9
add esp, 4
lea ecx, [esp + 0x18]
mov dword [ebp + 0x2b00], eax
mov byte [esp + 0x220], bl
call fcn.00402ba0
jmp case.default.0x42d727
cmp dword [ecx - 0xc], 0
jl 0x42dcd1
push 0x5baeb8
push ecx
call fcn.00550eef
mov ecx, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x42dca3
sub eax, ecx
cmp eax, 0xffffffff
je 0x42dca3
mov edx, dword [esp + 0x14]
push edx
call fcn.005520a9
imul eax, eax, 0x3e8
add esp, 4
lea ecx, [esp + 0x18]
mov dword [ebp + 0x2b04], eax
mov byte [esp + 0x220], bl
call fcn.00402ba0
jmp case.default.0x42d727
cmp dword [ecx - 0xc], 0
jl 0x42dcd1
push 0x5baec4
push ecx
call fcn.00550eef
add esp, 8
test eax, eax
je 0x42dcd1
sub eax, dword [esp + 0x18]
cmp eax, 0xffffffff
je 0x42dcd1
lea eax, [esp + 0x14]
lea ecx, [ebp + 0x2b08]
push eax
jmp 0x42dce8
lea ecx, [ebp + 0x2b0c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00413770
lea edx, [esp + 0x14]
push edx
mov ecx, eax
call fcn.00402bc0
lea ecx, [esp + 0x18]
mov byte [esp + 0x220], bl
call fcn.00402ba0
jmp case.default.0x42d727
push esi
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0x1c]
call fcn.004027f0
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x224], 0x1a
call fcn.00402bc0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x220], bl
call fcn.00402ba0
lea ecx, [esp + 0x24]
call fcn.00413340
mov ecx, eax
call fcn.004133d0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
sub eax, esi
dec eax
push eax
lea edx, [esp + 0x90]
push edx
lea ecx, [esp + 0x1c]
call fcn.0041c050
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x224], 0x1b
call fcn.00402bc0
lea ecx, [esp + 0x8c]
mov byte [esp + 0x220], bl
call fcn.00402ba0
push 0x5ae818
push 0x5baed0
lea ecx, [esp + 0x1c]
call fcn.00434cb0
lea eax, [esp + 0x34]
push eax
call fcn.0040d5f0
push ecx
mov byte [esp + 0x224], 0x1c
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x5ae818
call fcn.004024e0
lea ecx, [esp + 0x38]
push ecx
push ecx
mov byte [esp + 0x22c], 0x1d
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x88], esp
push edx
call fcn.004024c0
mov byte [esp + 0x22c], 0x1c
call fcn.004334f0
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x40]
and eax, 0xfffffffc
cmp eax, 0x14
jne 0x42dea5
lea ecx, [esp + 0x64]
push ecx
call fcn.0041cc30
xor edi, edi
lea esi, [esp + 0x34]
mov byte [esp + 0x220], 0x1e
call fcn.00413750
mov eax, dword [eax]
push eax
call fcn.005520a9
add esp, 4
mov edi, 1
mov dword [esp + 0x64], eax
call fcn.00413750
push eax
lea ecx, [esp + 0x6c]
call fcn.00402bc0
mov edi, 2
call fcn.00413750
push eax
lea ecx, [esp + 0x70]
call fcn.00402bc0
mov edi, 3
call fcn.00413750
push eax
lea ecx, [esp + 0x74]
call fcn.00402bc0
mov edi, 4
call fcn.00413750
push eax
lea ecx, [esp + 0x78]
call fcn.00402bc0
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x7c]
call fcn.00402bc0
lea eax, [esp + 0x64]
push eax
lea edi, [ebp + 0x2b4c]
call fcn.00435050
lea esi, [esp + 0x64]
call fcn.0042e840
lea esi, [esp + 0x34]
mov byte [esp + 0x220], bl
call fcn.0040d6b0
jmp case.default.0x42d727
lea ecx, [esi + 1]
push ecx
lea edx, [esp + 0x94]
push edx
lea ecx, [esp + 0x1c]
call fcn.004027c0
mov edi, eax
push esi
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x228], 0x1f
call fcn.004027f0
mov ecx, eax
mov byte [esp + 0x220], 0x20
call fcn.00413340
mov ecx, eax
call fcn.004133d0
push eax
lea ecx, [esp + 0x98]
push ecx
call fcn.00419f40
add esp, 8
mov esi, eax
mov ecx, edi
mov byte [esp + 0x220], 0x21
call fcn.00413340
mov ecx, eax
call fcn.004133d0
mov edi, eax
call fcn.00412c40
mov edx, dword [esi]
cmp dword [edx - 0xc], 0
jle 0x42df54
mov ecx, dword [edi]
cmp dword [ecx - 0xc], 0
jle 0x42df54
add eax, 0x38
push eax
mov ecx, esi
call fcn.00413770
push edi
mov ecx, eax
call fcn.00402bc0
lea ecx, [esp + 0x94]
call fcn.00402ba0
lea ecx, [esp + 0x98]
call fcn.00402ba0
lea ecx, [esp + 0x90]
mov byte [esp + 0x220], bl
call fcn.00402ba0
jmp case.default.0x42d727
lea edx, [esi + 1]
push edx
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x1c]
call fcn.004027c0
mov edi, eax
push esi
lea ecx, [esp + 0xe0]
push ecx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x228], 0x22
call fcn.004027f0
mov ecx, eax
mov byte [esp + 0x220], 0x23
call fcn.00413340
mov ecx, eax
call fcn.004133d0
push eax
lea edx, [esp + 0xa8]
push edx
call fcn.00419f40
add esp, 8
mov esi, eax
mov ecx, edi
mov byte [esp + 0x220], 0x24
call fcn.00413340
mov ecx, eax
call fcn.004133d0
mov edi, eax
call fcn.00412c40
mov ecx, dword [esi]
cmp dword [ecx - 0xc], 0
jle 0x42e01e
mov edx, dword [edi]
cmp dword [edx - 0xc], 0
jle 0x42e01e
add eax, 0x58
push eax
mov ecx, esi
call fcn.00413770
push edi
mov ecx, eax
call fcn.00402bc0
lea ecx, [esp + 0xa4]
call fcn.00402ba0
lea ecx, [esp + 0xdc]
call fcn.00402ba0
lea ecx, [esp + 0x84]
mov byte [esp + 0x220], bl
call fcn.00402ba0
jmp case.default.0x42d727
lea eax, [esp + 0xa8]
push eax
call fcn.0041c790
push esi
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x228], 0x25
call fcn.004027f0
push eax
lea ecx, [esp + 0xb0]
mov byte [esp + 0x224], 0x26
call fcn.00402bc0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x220], 0x25
call fcn.00402ba0
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 0xc]
sub eax, esi
dec eax
push eax
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x1c]
call fcn.0041c050
lea ecx, [esp + 0x34]
push ecx
mov byte [esp + 0x224], 0x27
call fcn.0040d5f0
push ecx
mov byte [esp + 0x224], 0x28
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x5bae88
call fcn.004024e0
lea edx, [esp + 0x38]
push edx
push ecx
mov byte [esp + 0x22c], 0x29
lea eax, [esp + 0x5c]
mov ecx, esp
mov dword [esp + 0x88], esp
push eax
call fcn.004024c0
mov byte [esp + 0x22c], 0x28
call fcn.004334f0
mov ecx, dword [esp + 0x44]
sub ecx, dword [esp + 0x40]
sar ecx, 2
cmp ecx, 2
jbe 0x42e198
mov edx, dword [0x5f575c]
mov eax, dword [edx + 0x38]
push eax
xor edi, edi
lea esi, [esp + 0x38]
call fcn.00413750
push ecx
mov ecx, esp
mov dword [esp + 0x6c], esp
push eax
call fcn.004024c0
call fcn.0041d240
mov ecx, dword [0x5f575c]
mov dword [esp + 0xc8], eax
mov edx, dword [ecx + 0x3c]
add esp, 8
push edx
mov edi, 1
call fcn.00413750
push ecx
mov ecx, esp
mov dword [esp + 0x6c], esp
push eax
call fcn.004024c0
call fcn.0041d240
add esp, 8
mov edi, 2
mov dword [esp + 0xc4], eax
call fcn.00413750
mov eax, dword [eax]
push eax
call fcn.005520a9
add esp, 4
mov word [esp + 0xb8], ax
lea eax, [ebp + 0x2b64]
push eax
lea ecx, [esp + 0xb0]
call fcn.004350f0
mov esi, eax
lea eax, [esp + 0xa8]
call fcn.0041cba0
lea esi, [esp + 0x34]
call fcn.0040d6b0
lea ecx, [esp + 0x50]
call fcn.00402ba0
lea eax, [esp + 0xa8]
mov byte [esp + 0x220], bl
call fcn.0042e740
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0xe8]
call fcn.0046f0e3
test eax, eax
jne 0x42d583
lea ecx, [esp + 0xe4]
call fcn.0046ef8a
mov byte [esp + 0x220], 0x10
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42e22b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x220], 0xf
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e253
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x220], 0xe
mov eax, dword [esp + 0x14]
jmp 0x42e2e7
lea ecx, [esp + 0x30]
push ecx
push 0x100
lea edx, [esp + 0x114]
push edx
lea ecx, [esp + 0x104]
call fcn.0046b34d
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42e29c
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x220], 0x2a
mov ecx, dword [esp + 0x30]
push esi
push ecx
lea edx, [esp + 0x114]
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x30]
push 0x5baed4
push eax
call fcn.00403110
mov byte [esp + 0x238], 0xe
mov eax, dword [esp + 0x38]
add esp, 0x18
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e303
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x220], 0xd
mov eax, dword [esp + 0x108]
add eax, 0xfffffff0
mov dword [esp + 0xf8], vtable.CFileException.0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e339
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xe4]
mov byte [esp + 0x220], 8
call fcn.0046efc8
mov ecx, dword [esp + 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [ebp + 0x2afc], 0x4e20
jae 0x42e36e
mov dword [ebp + 0x2afc], 0x4e20
mov eax, 0x7530
cmp dword [ebp + 0x2b04], eax
jge 0x42e381
mov dword [ebp + 0x2b04], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x2b44]
sub ecx, dword [eax + 0x2b40]
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
xor ebp, ebp
add eax, edx
je 0x42e520
mov dword [esp + 0x24], ebp
mov edi, edi
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x2b44]
sub ecx, dword [eax + 0x2b40]
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x42e3da
call fcn.005519ed
mov edx, dword [esp + 0x28]
mov esi, dword [edx + 0x2b40]
add esi, dword [esp + 0x24]
lea ecx, [esp + 0x84]
lea eax, [esi + 0x30]
push eax
push ecx
call fcn.00419f40
mov edi, eax
lea edx, [esi + 0x24]
push edx
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x230], 0x2b
call fcn.00419f40
mov ebx, eax
add esi, 0x20
lea ecx, [esp + 0x40]
push esi
push ecx
mov byte [esp + 0x238], 0x2c
call fcn.00419f40
add esp, 0x18
mov esi, eax
mov byte [esp + 0x220], 0x2d
test byte [0x5f5980], 1
jne 0x42e468
or dword [0x5f5980], 1
mov byte [esp + 0x220], 0x2e
call fcn.004118f0
push 0x585360
call fcn.0055104a
add esp, 4
mov byte [esp + 0x220], 0x2d
push edi
push ebx
mov ecx, esi
mov edx, 0x5f58a8
call fcn.00412db0
mov byte [esp + 0x220], 0x2c
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42e49e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x220], 0x2b
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e4c6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x220], 8
mov eax, dword [esp + 0x84]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e4f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x2b44]
sub ecx, dword [eax + 0x2b40]
add dword [esp + 0x24], 0x34
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
inc ebp
add ecx, edx
cmp ebp, ecx
jb 0x42e3b0
mov edi, dword [esp + 0x28]
mov edx, dword [edi + 0x20]
push 0
push 0
push 0x52c
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [edi + 0x2b24]
mov edx, dword [edi + 0x2b0c]
lea eax, [edi + 0x2b0c]
mov dword [esp + 0x4c], eax
mov eax, dword [0x5f57d0]
mov dword [esp + 0x68], ecx
mov ecx, dword [0x5f57cc]
mov dword [esp + 0x64], edx
mov dword [esp + 0x30], eax
cmp ecx, eax
jbe 0x42e578
call fcn.005519ed
mov eax, dword [0x5f57d0]
mov ecx, dword [0x5f57cc]
mov edx, dword [0x5f57c0]
mov dword [esp + 0x84], edx
mov esi, ecx
cmp ecx, eax
jbe 0x42e590
call fcn.005519ed
mov ebp, dword [0x5f57c0]
mov dword [esp + 0x80], esi
test ebp, ebp
je 0x42e5aa
cmp ebp, dword [esp + 0x84]
je 0x42e5af
call fcn.005519ed
cmp esi, dword [esp + 0x30]
je 0x42e680
test ebp, ebp
jne 0x42e635
call fcn.005519ed
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x42e5ce
call fcn.005519ed
mov edi, dword [esi]
test edi, edi
je 0x42e653
mov esi, dword [esp + 0x4c]
lea eax, [edi + 4]
push eax
lea ecx, [esp + 0xe0]
push ecx
call fcn.00434eb0
cmp dword [esp + 0x64], 0
mov ebx, dword [eax]
mov esi, dword [eax + 4]
je 0x42e5ff
cmp dword [esp + 0x64], ebx
je 0x42e604
call fcn.005519ed
cmp dword [esp + 0x68], esi
je 0x42e653
mov edi, dword [edi + 0xc]
test edi, edi
je 0x42e653
test ebx, ebx
jne 0x42e63a
call fcn.005519ed
cmp esi, dword [ebx + 0x18]
jne 0x42e624
call fcn.005519ed
mov ebx, dword [esi + 0x10]
lea ecx, [edi + 0x178]
test ebx, ebx
jne 0x42e63e
xor eax, eax
jmp 0x42e64c
mov eax, dword [ebp]
jmp 0x42e5c4
mov ebx, dword [ebx]
jmp 0x42e61a
mov eax, ebx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e643
sub eax, esi
push eax
push ebx
call fcn.00402ef0
test ebp, ebp
jne 0x42e67b
call fcn.005519ed
xor eax, eax
mov esi, dword [esp + 0x80]
cmp esi, dword [eax + 0x10]
jb 0x42e66f
call fcn.005519ed
mov edi, dword [esp + 0x28]
add esi, 4
jmp 0x42e596
mov eax, dword [ebp]
jmp 0x42e65e
cmp dword [edi + 0x2b00], 0
jle 0x42e6a3
mov eax, dword [edi + 0x2b04]
push 0
push eax
mov eax, dword [edi + 0x20]
lea edx, [edi + 0x28b8]
push edx
push eax
call dword [sym.imp.USER32.dll_SetTimer]
mov byte [esp + 0x220], 0
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e6cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x220], 0xffffffff
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e6f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [esp + 0x218]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x200]
xor ecx, esp
call fcn.005509f8
add esp, 0x210
ret