Function at 0x42f8a0
Capabilities:
Check if file exists
Copy file
Create directory
Delete file
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x582d3d
mov eax, dword fs:[0]
push eax
sub esp, 0x168
mov eax, dword [0x5e4a44]
xor eax, esp
mov dword [esp + 0x160], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5e4a44]
xor eax, esp
push eax
lea eax, [esp + 0x17c]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x18c]
push str.update.bat
lea eax, [esp + 0x24]
push 0x5f5208
push eax
call fcn.00413530
mov eax, dword [eax]
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
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 0x42f922
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.naka
lea ecx, [esp + 0x2c]
push 0x5f5208
push ecx
call fcn.00413530
add esp, 0xc
xor edi, edi
mov dword [esp + 0x184], edi
mov edx, dword [esp + 0x28]
push edx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryA]
test eax, eax
jne 0x42f95d
mov eax, dword [esp + 0x28]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0x5baff8
lea ecx, [esp + 0x3c]
call fcn.004024e0
push 0xff00
push ecx
mov byte [esp + 0x18c], 1
mov ecx, esp
lea edx, [esp + 0x40]
mov dword [esp + 0x34], esp
push edx
push ecx
call fcn.00419f40
add esp, 8
mov esi, ebp
call fcn.00432fc0
mov byte [esp + 0x184], 0
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42f9bc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
fldz
push ecx
lea esi, [ebp + 0x29b8]
fstp dword [esp]
call fcn.00404400
fldz
push ecx
fstp dword [esp]
lea esi, [ebp + 0x2a50]
call fcn.00404400
push 0x5af62d
lea ecx, [esp + 0x34]
call fcn.004024e0
mov byte [esp + 0x184], 2
call fcn.00454925
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x42fa0e
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 + 0x44], eax
mov byte [esp + 0x184], 3
call fcn.00454925
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x42fa40
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 + 0x3c], eax
mov byte [esp + 0x184], 4
mov ecx, dword [ebp + 0x2b5c]
sub ecx, dword [ebp + 0x2b58]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
je 0x42fb1f
xor ebx, ebx
lea ecx, [ecx]
mov ecx, dword [ebp + 0x2b5c]
sub ecx, dword [ebp + 0x2b58]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
test eax, eax
jge 0x42faaf
fadd dword [0x5bd4d8]
fld1
mov dword [ebp + 0x2af4], edi
fdivrp st(1)
mov eax, 0x2aaaaaab
fstp dword [ebp + 0x2af8]
mov ecx, dword [ebp + 0x2b5c]
sub ecx, dword [ebp + 0x2b58]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp edi, ecx
jb 0x42fae5
call fcn.005519ed
mov esi, dword [ebp + 0x2b58]
add esi, ebx
cmp dword [esi], 1
mov dword [esp + 0x24], esi
je 0x42fb63
mov ecx, dword [ebp + 0x2b5c]
sub ecx, dword [ebp + 0x2b58]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
add ebx, 0x18
cmp edi, eax
jb 0x42fa80
mov edx, dword [ebp + 0x29d8]
mov esi, dword [sym.imp.USER32.dll_GetClientRect]
lea ecx, [esp + 0x4c]
push ecx
push edx
call esi
fld dword [ebp + 0x2a24]
fcomp qword [0x5bd488]
mov edi, dword [sym.imp.USER32.dll_InvalidateRect]
push 1
fnstsw ax
test ah, 5
jp 0x430571
mov ecx, dword [ebp + 0x29d8]
lea eax, [esp + 0x50]
push eax
push ecx
jmp 0x43057d
push 0x104
lea ecx, [esp + 0x70]
push ecx
push 0
mov dword [esp + 0x54], edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x6c]
lea edi, [esp + 0x20]
call fcn.004454e0
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x188], 5
call fcn.00402bc0
mov byte [esp + 0x184], 4
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42fbc0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 0xc]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42fbd8
push 0x80004005
call fcn.004010d0
mov ecx, dword [esp + 0x30]
push eax
push ecx
call fcn.00551707
add esp, 8
test eax, eax
sete al
test al, al
je 0x42ffbd
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x1c]
call fcn.004024e0
mov byte [esp + 0x184], 6
mov eax, dword [esp + 0x18]
push 0x5c
push eax
call fcn.00551488
add esp, 8
test eax, eax
jne 0x42fc21
or ebx, 0xffffffff
jmp 0x42fc27
sub eax, dword [esp + 0x18]
mov ebx, eax
add esi, 8
lea ecx, [esp + 0x20]
push esi
push ecx
call fcn.00419f40
add esp, 8
mov edi, eax
inc ebx
push ebx
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x20]
mov byte [esp + 0x18c], 7
call fcn.004027c0
mov ecx, dword [edi]
xor edx, edx
test ecx, ecx
setne dl
test edx, edx
jne 0x42fc69
push 0x80004005
call fcn.004010d0
mov eax, dword [eax]
push ecx
push eax
call fcn.00551707
add esp, 8
test eax, eax
mov eax, dword [esp + 0x24]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42fc9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 6
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 0x42fcc2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x42ff8c
lea ecx, [esp + 0x1c]
push esi
push ecx
call fcn.00419f40
mov esi, eax
push 0x5af6f0
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x198], 8
call fcn.00413530
add esp, 0x14
push esi
push eax
lea ecx, [esp + 0x2c]
mov bl, 9
push ecx
mov byte [esp + 0x190], bl
call fcn.00413470
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x188], 0xa
call fcn.00402bc0
mov byte [esp + 0x184], bl
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 0x42fd47
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 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 0x42fd6f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 6
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 0x42fd97
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
push ecx
mov dword [esp + 0x20], 0x1e
mov esi, 5
xor edi, edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x42fdfb
jmp 0x42fdc0
mov eax, dword [esp + 0x1c]
mov edx, eax
dec eax
mov dword [esp + 0x1c], eax
test edx, edx
jle 0x42fdfb
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x42fdec
call ebx
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
add esi, 5
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x42fdc0
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x42ff79
push eax
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x74]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x42ff1a
mov edx, dword [esp + 0x18]
push edx
lea eax, [esp + 0x70]
push eax
call ebx
mov ecx, dword [ebp + 0xc0]
push eax
push 0x5bb00c
push ecx
call fcn.00403110
mov byte [esp + 0x198], 4
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
add esp, 0x14
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42fe70
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 3
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42fe98
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 2
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42fec0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 0
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42fee8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x184], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ff13
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x430733
mov ecx, dword [esp + 0x18]
mov eax, dword [ebp + 0xc0]
push ecx
lea edx, [esp + 0x70]
push edx
push 0x5bb034
push eax
call fcn.00403110
mov eax, dword [esp + 0x28]
add esp, 0xc
add eax, 0xfffffff0
mov dword [esp + 0x30], esp
mov esi, esp
push eax
call fcn.00403050
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0042f240
mov byte [esp + 0x184], 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
jmp 0x42fe64
mov ecx, dword [esp + 0x18]
push edi
push ecx
push str._RN_del_:__s___d
call fcn.0041bdc0
add esp, 0xc
mov byte [esp + 0x184], 4
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42fb1f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x42fb1f
add esi, 8
lea ecx, [esp + 0x5c]
push esi
push ecx
mov dword [esp + 0x34], esi
call fcn.00419f40
mov edi, eax
push 0x5af6f0
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x74]
push eax
mov byte [esp + 0x198], 0xb
call fcn.00413530
add esp, 0x14
push edi
push eax
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x190], 0xc
call fcn.00413470
add esp, 0xc
mov byte [esp + 0x184], 0xe
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43002f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 0xf
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430057
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
lea ecx, [esp + 0x3c]
push 0x5bb060
push ecx
call fcn.00413610
add esp, 0xc
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x24]
push eax
mov byte [esp + 0x18c], 0x10
call fcn.00419f40
add esp, 8
mov byte [esp + 0x184], 0x11
mov esi, dword [eax]
mov eax, dword [ebp + 0x2ae8]
test eax, eax
je 0x4300d0
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x4c]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [esp + 0x4c]
push eax
mov ecx, ebp
call fcn.00455d6d
mov edx, dword [ebp + 0x20]
push 1
lea ecx, [esp + 0x50]
push ecx
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [ebp + 0x2ae8]
push esi
call fcn.0045ed6d
mov byte [esp + 0x184], 0x10
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 0x4300f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x430112
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 + 0x184], 0x12
mov dword [esp + 0x20], 0
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42fa04
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
mov byte [esp + 0x188], 0x13
mov esi, dword [esp + 0x38]
push ebp
push 0x42c960
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov dword [esp + 0x78], esp
mov ebx, esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x43019b
cmp eax, dword [esi]
jne 0x43019b
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4301cf
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x430525
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0055149f
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [esp + 0x194], 0x14
mov edx, dword [esp + 0x34]
mov esi, dword [edx + 0x10]
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
sub esi, 0x10
mov dword [esp + 0x74], esp
mov ebx, esp
call edx
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x430211
cmp eax, dword [esi]
jne 0x430211
mov edi, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x430245
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x430525
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0055149f
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [esp + 0x198], 0x13
call fcn.00415e90
add esp, 0x14
test eax, eax
jg 0x4302da
cmp eax, 0xfffffffe
jne 0x430274
mov edx, dword [esp + 0x48]
push edx
push 0x5bb06c
lea eax, [esp + 0x20]
push eax
jmp 0x430288
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x18]
push ecx
cmp eax, 0xffffffff
jne 0x4302cc
push 0x5bb080
push edx
call fcn.00403110
mov byte [esp + 0x190], 0x12
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
add esp, 0xc
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4302b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
inc eax
cmp eax, 3
mov dword [esp + 0x20], eax
jl 0x430132
jmp 0x430302
push str.http
push edx
call fcn.00403110
add esp, 0xc
mov byte [esp + 0x184], 0x12
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430302
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x34]
lea edi, [esp + 0x40]
call fcn.004454e0
mov bl, 0x15
mov byte [esp + 0x184], bl
mov ecx, dword [esp + 0x40]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x430331
push 0x80004005
call fcn.004010d0
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 0xc]
push ecx
push eax
call fcn.00551707
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x3c]
add esp, 8
test eax, eax
setne al
test al, al
je 0x4304c0
mov esi, dword [esi + 0xc]
push esi
push ecx
push edx
lea eax, [esp + 0x24]
push 0x5bb0a0
push eax
call fcn.00403110
add esp, 0x14
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x430389
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 + 0x1c], eax
mov byte [esp + 0x184], 0x16
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
push eax
lea edx, [esp + 0x20]
push str.Update_Failed:__s
push edx
call fcn.00403110
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x30]
push ecx
call fcn.00419f40
mov edx, dword [0x5f5808]
mov eax, dword [eax]
add esp, 8
push 0x10
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
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 0x430400
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], bl
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 0x430427
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 0x12
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43044f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 0x10
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430477
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 0xf
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43049f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 4
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x42fe64
mov eax, dword [esp + 0x30]
push ecx
push edx
mov edx, dword [ebp + 0xc0]
push eax
lea ecx, [esp + 0x78]
push ecx
push 0x5bb0d4
push edx
call fcn.00403110
mov esi, dword [esp + 0x4c]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
add esp, 0x14
mov dword [esp + 0x64], esp
mov ebx, esp
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x430511
cmp eax, dword [esi]
jne 0x430511
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x430546
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
jne 0x43052a
call fcn.004030c0
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0055149f
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
call fcn.0042f240
mov byte [esp + 0x184], 0x12
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x430443
mov eax, dword [ebp + 0x29d8]
lea edx, [esp + 0x50]
push edx
push eax
call edi
fld1
lea ecx, [esp + 0x4c]
fstp dword [ebp + 0x2a24]
mov edx, dword [ebp + 0x2a70]
push ecx
push edx
call esi
fld dword [ebp + 0x2abc]
fcomp qword [0x5bd488]
push 1
fnstsw ax
test ah, 5
jp 0x4305b8
mov ecx, dword [ebp + 0x2a70]
lea eax, [esp + 0x50]
push eax
push ecx
jmp 0x4305c4
mov eax, dword [ebp + 0x2a70]
lea edx, [esp + 0x50]
push edx
push eax
call edi
fld1
push 0x5bb0f0
fstp dword [ebp + 0x2abc]
lea ecx, [esp + 0x28]
call fcn.004024e0
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x30]
mov bl, 0x17
push edx
mov byte [esp + 0x18c], bl
call fcn.00419f40
add esp, 8
mov byte [esp + 0x184], 0x18
mov esi, dword [eax]
mov eax, dword [ebp + 0x2ae8]
test eax, eax
je 0x43063f
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x4c]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [esp + 0x4c]
push eax
mov ecx, ebp
call fcn.00455d6d
mov edx, dword [ebp + 0x20]
push 1
lea ecx, [esp + 0x50]
push ecx
push edx
call edi
mov ecx, dword [ebp + 0x2ae8]
push esi
call fcn.0045ed6d
mov byte [esp + 0x184], bl
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 0x430666
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 4
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 0x43068e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 3
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4306b6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 2
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4306de
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x184], 0
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430706
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x184], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430731
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [esp + 0x17c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x160]
xor ecx, esp
call fcn.005509f8
add esp, 0x174
ret 4