Function at 0x41fd50
Capabilities:
Check http status code
Check if file exists
Delete file
Get file size
Initialize winhttp library
Prepare http request
Read http header
Receive http response

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5216fb
mov eax, dword fs:[0]
push eax
sub esp, 0x230
mov eax, dword [0x5640a8]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x1f8], ebx
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1d8], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1c8], 0
mov dword [ebp - 4], 0
call fcn.00421bc0
mov word [ebx + 0x18], 0
cmp ebx, esi
je 0x41fdc7
push 0xffffffffffffffff
push 0
push esi
mov ecx, ebx
call fcn.00402670
push 0x38
lea eax, [ebp - 0x234]
push 0
push eax
call fcn.004fb530
add esp, 0xc
mov dword [ebp - 0x238], 0x3c
cmp dword [ebx + 0x14], 8
mov dword [ebp - 0x218], 1
mov dword [ebp - 0x210], 1
mov dword [ebp - 0x224], 1
mov dword [ebp - 0x208], 1
jb 0x41fe16
mov eax, dword [ebx]
jmp 0x41fe18
mov eax, ebx
lea ecx, [ebp - 0x238]
push ecx
push 0
push 0
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpCrackUrl]
test eax, eax
je 0x420105
push 0
push 0
push 0
push 1
push str.supercient
call dword [sym.imp.WINHTTP.dll_WinHttpOpen]
push 0xea60
push 0x1388
push 0x1388
push 0x1388
push eax
mov dword [ebx + 0x4c], eax
call dword [sym.imp.WINHTTP.dll_WinHttpSetTimeouts]
mov eax, dword [ebp - 0x228]
test eax, eax
je 0x41febd
push dword [ebp - 0x224]
xor ecx, ecx
mov dword [ebp - 0xc8], 7
mov word [ebp - 0xdc], cx
lea ecx, [ebp - 0xdc]
push eax
mov dword [ebp - 0xcc], 0
call fcn.00402570
mov eax, 1
mov dword [ebp - 0x1c8], eax
lea eax, [ebp - 0xdc]
cmp dword [ebp - 0xc8], 8
cmovae eax, dword [ebp - 0xdc]
jmp 0x41febf
xor eax, eax
push 0
push dword [ebp - 0x220]
push eax
push dword [ebx + 0x4c]
call dword [sym.imp.WINHTTP.dll_WinHttpConnect]
mov esi, eax
mov eax, dword [ebp - 0x1c8]
test al, 1
je 0x41ff21
and eax, 0xfffffffe
mov dword [ebp - 0x1c8], eax
mov ecx, dword [ebp - 0xc8]
cmp ecx, 8
jb 0x41ff04
inc ecx
push ecx
push dword [ebp - 0xdc]
lea ecx, [ebp - 0xdc]
call fcn.00402f10
xor eax, eax
mov dword [ebp - 0xc8], 7
mov dword [ebp - 0xcc], 0
mov word [ebp - 0xdc], ax
test esi, esi
je 0x4200f0
mov eax, dword [ebp - 0x20c]
xor ecx, ecx
test eax, eax
je 0x41ff79
push dword [ebp - 0x208]
mov dword [ebp - 0xb4], ecx
mov word [ebp - 0xc4], cx
lea ecx, [ebp - 0xc4]
push eax
mov dword [ebp - 0xb0], 7
call fcn.00402570
or dword [ebp - 0x1c8], 2
lea ecx, [ebp - 0xc4]
cmp dword [ebp - 0xb0], 8
cmovae ecx, dword [ebp - 0xc4]
xor eax, eax
mov edx, 0x800000
cmp dword [ebp - 0x22c], 2
cmove eax, edx
push eax
push 0
push 0
push 0
push ecx
push 0x53df64
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpOpenRequest]
mov edi, eax
mov eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x1d0], edi
test al, 2
je 0x41ffbb
lea ecx, [ebp - 0xc4]
call fcn.00402450
test edi, edi
je 0x4200f0
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpSetOption]
lea eax, [ebp - 0x1e4]
push 4
push eax
push 0x3f
push edi
mov dword [ebp - 0x1e4], 2
call esi
push 4
lea eax, [ebp - 0x1e4]
mov dword [ebp - 0x1e4], 0x3300
push eax
push 0x1f
push edi
call esi
push 0
push 0
push 0
push 0
push 0
push 0
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
test eax, eax
je 0x4200f0
push 0
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpReceiveResponse]
test eax, eax
je 0x4200f0
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
lea eax, [ebp - 0x1fc]
push 0
push eax
lea eax, [ebp - 0x1e8]
mov dword [ebp - 0x1e8], 0
push eax
push 0
push 0x20000013
push edi
mov dword [ebp - 0x1fc], 4
call esi
test eax, eax
je 0x4200f0
mov edi, dword [ebp - 0x1e8]
cmp edi, 0xc8
je 0x420093
cmp dword [ebx + 0x4c], 0
jne 0x420b91
push 0
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov edi, dword [ebp - 0x1e8]
mov dword [ebx + 0x4c], 0
jmp 0x420b91
push 0x40
lea eax, [ebp - 0x54]
push 0
push eax
call fcn.004fb530
mov edi, dword [ebp - 0x1d0]
lea eax, [ebp - 0x1ec]
add esp, 0xc
mov dword [ebp - 0x1ec], 0x40
push 0
push eax
lea eax, [ebp - 0x54]
push eax
push 0
push 5
push edi
call esi
test eax, eax
je 0x4200f0
cmp word [ebp - 0x54], 0
je 0x4200e4
lea eax, [ebp - 0x54]
push eax
call fcn.00502b6f
add esp, 4
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], edx
mov ecx, dword [ebx + 0x20]
mov eax, ecx
mov edx, dword [ebx + 0x24]
or eax, edx
jne 0x420112
cmp dword [ebx + 0x4c], 0
jne 0x420105
push 0
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov dword [ebx + 0x4c], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x420b91
test edx, edx
jne 0x420149
cmp ecx, 0x40000000
ja 0x420149
test edx, edx
jne 0x420142
cmp ecx, 0xc800000
ja 0x420142
test edx, edx
jne 0x42013b
cmp ecx, 0x3200000
ja 0x42013b
lea esi, [edx + 1]
jmp 0x42014e
mov esi, 2
jmp 0x42014e
mov esi, 3
jmp 0x42014e
mov esi, 4
push 0x40
lea eax, [ebp - 0x94]
push 0
push eax
call fcn.004fb530
add esp, 0xc
mov dword [ebp - 0x1ec], 0x40
lea eax, [ebp - 0x1ec]
push 0
push eax
lea eax, [ebp - 0x94]
push eax
push 0
push 0x2a
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
test eax, eax
jne 0x420196
mov dword [ebp - 0x1c0], 1
jmp 0x4201dc
mov ecx, str.bytes
lea eax, [ebp - 0x94]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4201c7
test dx, dx
je 0x4201c3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4201c7
add eax, 4
add ecx, 4
test dx, dx
jne 0x4201a1
xor eax, eax
jmp 0x4201cc
sbb eax, eax
or eax, 1
test eax, eax
mov ecx, 1
cmovne esi, ecx
mov dword [ebp - 0x1c0], esi
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0
mov byte [ebp - 4], 1
mov dword [ebp - 0x1c8], 0
push 0x48
call fcn.004e204b
add esp, 4
mov ecx, eax
call fcn.00421a80
mov ecx, eax
mov eax, dword [ebp - 0x1c8]
cdq
push 0
push dword [ebp - 0x1c0]
mov edi, eax
mov dword [ebp - 0x1bc], ecx
mov dword [ecx + 8], edi
mov esi, edx
mov dword [ecx + 0xc], esi
push dword [ebx + 0x24]
push dword [ebx + 0x20]
call fcn.004e2eb0
push esi
push edi
push edx
push eax
call fcn.004e2f50
mov ecx, dword [ebp - 0x1bc]
mov edi, dword [ebp - 0x1c0]
push 0
push edi
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x1c8]
mov dword [ecx + 0x14], edx
inc eax
push dword [ebx + 0x24]
mov dword [ebp - 0x1d0], eax
push dword [ebx + 0x20]
call fcn.004e2eb0
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0x1d0]
cdq
push edx
push eax
push ecx
push esi
call fcn.004e2f50
mov ecx, dword [ebp - 0x1bc]
add eax, 0xffffffff
push dword [ebp - 0x1c8]
adc edx, 0xffffffff
mov dword [ecx + 0x18], eax
lea eax, [ebp - 0x124]
push eax
mov dword [ecx + 0x1c], edx
call fcn.0041f310
mov esi, eax
push 0x53ca00
push dword [ebp - 0x1d8]
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 2
push eax
call fcn.0040ccf0
add esp, 0x14
push dword [ebp - 0x1d4]
mov edx, eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1b4]
call fcn.0040ce70
add esp, 4
push str._slice
push eax
lea eax, [ebp - 0xc4]
mov byte [ebp - 4], 4
push eax
call fcn.004151f0
add esp, 0xc
push esi
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0xac]
push eax
call fcn.0040ce00
mov esi, dword [ebp - 0x1bc]
add esp, 0xc
push eax
lea ecx, [esi + 0x2c]
call fcn.0040c240
lea ecx, [ebp - 0xac]
call fcn.00402450
lea ecx, [ebp - 0xc4]
call fcn.00402450
lea ecx, [ebp - 0x1b4]
call fcn.00402450
lea ecx, [ebp - 0x10c]
call fcn.00402450
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 1
call fcn.00402450
lea eax, [edi - 1]
cmp dword [ebp - 0x1c8], eax
jne 0x420382
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x24]
add ecx, 0xffffffff
mov dword [esi + 0x18], ecx
adc eax, 0xffffffff
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x1bc]
push eax
lea ecx, [ebp - 0xd0]
call fcn.00406f80
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x1c8], eax
cmp eax, edi
jl 0x420208
push str..ini
lea ecx, [ebp - 0x10c]
call fcn.00403170
push eax
push dword [ebp - 0x1d4]
lea eax, [ebp - 0x124]
mov byte [ebp - 4], 6
push eax
call fcn.00415250
add esp, 0xc
push dword [ebp - 0x1d8]
lea ecx, [ebx + 0x28]
mov byte [ebp - 4], 7
push eax
mov dword [ebp - 0x1d0], ecx
call fcn.004245b0
lea ecx, [ebp - 0x124]
call fcn.00402450
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 1
call fcn.00402450
mov eax, dword [ebp - 0xd0]
mov esi, eax
cmp eax, dword [ebp - 0xcc]
je 0x42064b
lea eax, [ebx + 0x54]
mov ebx, dword [ebp - 0x1d0]
mov dword [ebp - 0x1dc], eax
mov eax, dword [esi]
push dword [eax + 0xc]
push dword [eax + 8]
lea eax, [ebp - 0x124]
push eax
call fcn.0041f330
add esp, 0xc
push eax
lea eax, [ebp - 0xc4]
mov byte [ebp - 4], 8
push str.Slice
push eax
call fcn.00422790
add esp, 0xc
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 0xa
call fcn.00402450
push str.start
lea ecx, [ebp - 0xac]
call fcn.00403170
sub esp, 8
lea eax, [ebp - 0xac]
mov ecx, ebx
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.004248a0
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x1c0], edx
mov edi, eax
call fcn.00402450
push 0x53e000
lea ecx, [ebp - 0xac]
call fcn.00403170
sub esp, 8
lea eax, [ebp - 0xac]
mov ecx, ebx
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.004248a0
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1c8], edx
call fcn.00402450
push str.size
lea ecx, [ebp - 0xac]
call fcn.00403170
sub esp, 8
lea eax, [ebp - 0xac]
mov ecx, ebx
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.004248a0
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1f4], edx
call fcn.00402450
mov eax, dword [esi]
cmp edi, dword [eax + 0x10]
jne 0x420577
mov ecx, dword [ebp - 0x1c0]
cmp ecx, dword [eax + 0x14]
jne 0x420577
mov ecx, dword [ebp - 0x1bc]
cmp ecx, dword [eax + 0x18]
jne 0x420577
mov ecx, dword [ebp - 0x1c8]
cmp ecx, dword [eax + 0x1c]
jne 0x420577
add eax, 0x2c
cmp dword [eax + 0x14], 8
jb 0x420553
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x420577
mov eax, dword [esi]
mov ecx, dword [ebp - 0x1f0]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x1f4]
mov dword [eax + 0x24], ecx
jmp 0x42061b
push str.start
lea ecx, [ebp - 0xac]
call fcn.00403170
mov eax, dword [esi]
mov ecx, ebx
push dword [eax + 0x14]
push dword [eax + 0x10]
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.00424950
lea ecx, [ebp - 0xac]
call fcn.00402450
push 0x53e000
lea ecx, [ebp - 0xac]
call fcn.00403170
mov eax, dword [esi]
mov ecx, ebx
push dword [eax + 0x1c]
push dword [eax + 0x18]
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.00424950
lea ecx, [ebp - 0xac]
call fcn.00402450
push str.size
lea ecx, [ebp - 0xac]
call fcn.00403170
push 0
push 0
lea eax, [ebp - 0xac]
mov ecx, ebx
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.00424950
lea ecx, [ebp - 0xac]
call fcn.00402450
mov ecx, dword [ebp - 0x1dc]
push esi
call fcn.00406f80
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 1
call fcn.00402450
add esi, 4
cmp esi, dword [ebp - 0xcc]
jne 0x420428
mov ebx, dword [ebp - 0x1f8]
push 0x53ca00
push dword [ebp - 0x1d8]
lea eax, [ebp - 0x124]
mov byte [ebp - 0x1b5], 0
push eax
call fcn.0040ccf0
add esp, 0xc
push dword [ebp - 0x1d4]
mov edx, eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xf4]
call fcn.0040ce70
add esp, 4
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 0xd
call fcn.00402450
cmp dword [ebp - 0xe0], 8
lea eax, [ebp - 0xf4]
push 0
cmovae eax, dword [ebp - 0xf4]
push 0
push 3
push 0
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x420996
lea eax, [ebp - 0x1cc]
mov dword [ebp - 0x1cc], 0
push eax
push esi
mov dword [ebp - 0x1c8], 0
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0x1c8]
mov dword [ebp - 0x1bc], edx
mov dword [ebp - 0x1c0], ecx
cmp edx, dword [ebx + 0x20]
jne 0x420771
cmp ecx, dword [ebx + 0x24]
jne 0x420771
push str..ini
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0x10c]
push eax
call fcn.0040ccf0
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x420738
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x10c]
call fcn.00402450
cmp dword [ebp + 0x38], 0
je 0x420b38
mov eax, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x20]
push 0
push 0
push eax
push ecx
push eax
push ecx
push 3
lea ecx, [ebp + 0x14]
call fcn.00421dc0
jmp 0x420b38
mov edi, dword [ebx + 0x58]
mov esi, dword [ebx + 0x54]
cmp esi, edi
je 0x4207bf
nop dword [eax + eax]
mov eax, dword [esi]
add eax, 0x2c
cmp dword [eax + 0x14], 8
jb 0x42078d
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edx, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1c0]
test eax, eax
je 0x4207b8
mov eax, dword [esi]
add edx, dword [eax + 0x20]
mov dword [ebp - 0x1bc], edx
adc ecx, dword [eax + 0x24]
mov dword [ebp - 0x1c0], ecx
add esi, 4
cmp esi, edi
jne 0x420780
cmp ecx, dword [ebx + 0x24]
ja 0x42082c
jb 0x4207cb
cmp edx, dword [ebx + 0x20]
jae 0x42082c
cmp dword [ebp - 0xe0], 8
lea eax, [ebp - 0xf4]
cmovae eax, dword [ebp - 0xf4]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edi, dword [ebx + 0x58]
mov esi, dword [ebx + 0x54]
cmp esi, edi
je 0x420996
mov eax, dword [esi]
add eax, 0x2c
cmp dword [eax + 0x14], 8
jb 0x420801
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x420820
mov eax, dword [esi]
add eax, 0x2c
cmp dword [eax + 0x14], 8
jb 0x420819
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
add esi, 4
cmp esi, edi
jne 0x4207f4
jmp 0x420996
mov esi, dword [ebx + 0x54]
mov edi, dword [ebx + 0x58]
mov byte [ebp - 0x1b5], 1
cmp esi, edi
je 0x420996
mov ebx, dword [ebp - 0x1d0]
mov eax, dword [esi]
push dword [eax + 0xc]
push dword [eax + 8]
lea eax, [ebp - 0x10c]
push eax
call fcn.0041f330
add esp, 0xc
push eax
lea eax, [ebp - 0xc4]
mov byte [ebp - 4], 0xe
push str.Slice
push eax
call fcn.00422790
add esp, 0xc
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 0x10
call fcn.00402450
push str.start
lea ecx, [ebp - 0xac]
call fcn.00403170
sub esp, 8
lea eax, [ebp - 0xac]
mov ecx, ebx
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.004248a0
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1bc], edx
call fcn.00402450
push 0x53e000
lea ecx, [ebp - 0xac]
call fcn.00403170
sub esp, 8
lea eax, [ebp - 0xac]
mov ecx, ebx
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.004248a0
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1c0], edx
call fcn.00402450
push str.size
lea ecx, [ebp - 0xac]
call fcn.00403170
sub esp, 8
lea eax, [ebp - 0xac]
mov ecx, ebx
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.004248a0
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1f4], edx
call fcn.00402450
mov eax, dword [ebp - 0x1dc]
or eax, dword [ebp - 0x1f4]
jne 0x420976
mov ecx, dword [ebp - 0x1f0]
sub ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1c0]
sbb edx, dword [ebp - 0x1bc]
add ecx, 1
adc edx, eax
mov eax, dword [esi]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0xd
call fcn.00402450
add esi, 4
cmp esi, edi
jne 0x420847
mov ebx, dword [ebp - 0x1f8]
push dword [ebx + 0x44]
mov esi, dword [sym.imp.KERNEL32.dll_ResetEvent]
call esi
push dword [ebx + 0x48]
call esi
push 0x7c
call fcn.004e204b
mov ecx, eax
add esp, 4
mov dword [ebp - 0x1dc], ecx
mov byte [ebp - 4], 0x11
mov eax, dword [ebx + 0x58]
sub eax, dword [ebx + 0x54]
sar eax, 2
inc eax
push eax
call fcn.0041f690
or esi, 0xffffffff
mov byte [ebp - 4], 0xd
cmp byte [ebp - 0x1b5], 0
mov dword [ebx + 0x50], eax
jne 0x420a8c
mov esi, dword [ebx + 0x54]
mov edi, dword [ebx + 0x58]
cmp esi, edi
je 0x420a89
mov ecx, dword [esi]
mov eax, dword [ecx + 0x18]
sub eax, dword [ecx + 0x10]
mov edx, dword [ecx + 0x1c]
sbb edx, dword [ecx + 0x14]
add eax, 1
adc edx, 0
cmp dword [ecx + 0x20], eax
jne 0x420a0f
cmp dword [ecx + 0x24], edx
je 0x420a7e
push dword [ebp - 0x1d4]
lea eax, [ebp - 0x238]
push dword [ebp - 0x1d8]
lea ecx, [ebp - 0x19c]
push eax
push esi
push ebx
call fcn.00421080
push eax
lea eax, [ebp - 0x1e0]
mov byte [ebp - 4], 0x12
mov ecx, dword [ebx + 0x50]
push eax
call fcn.004227f0
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x1e0]
test ecx, ecx
je 0x420a6f
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x420a6f
mov edx, dword [ecx + 0x78]
test edx, edx
je 0x420a69
mov eax, dword [edx]
push ecx
mov ecx, edx
jmp 0x420a6d
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [ebp - 0x19c]
mov byte [ebp - 4], 0xd
call fcn.00421ae0
add esi, 4
cmp esi, edi
jne 0x4209f1
or esi, 0xffffffff
xor eax, eax
mov dword [ebp - 0x17c], ebx
push 0xffffffffffffffff
push eax
mov word [ebp - 0x178], ax
lea ecx, [ebp - 0x178]
lea eax, [ebp - 0xf4]
mov dword [ebp - 0x164], 7
push eax
mov dword [ebp - 0x168], 0
call fcn.00402670
lea eax, [ebp + 0x14]
mov dword [ebp - 0x138], 0
push eax
lea ecx, [ebp - 0x15c]
call fcn.00422230
mov al, byte [ebp - 0x1b5]
mov byte [ebp - 0x134], al
lea eax, [ebp - 0x17c]
mov byte [ebp - 4], 0x14
mov ecx, dword [ebx + 0x50]
push eax
lea eax, [ebp - 0x1e0]
push eax
call fcn.00422a30
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x1e0]
test ecx, ecx
je 0x420b2d
lock xadd dword [ecx + 4], esi
dec esi
jne 0x420b2d
mov edx, dword [ecx + 0x78]
test edx, edx
je 0x420b27
mov eax, dword [edx]
push ecx
mov ecx, edx
jmp 0x420b2b
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [ebp - 0x17c]
call fcn.00421b60
mov eax, dword [ebp - 0xe0]
cmp eax, 8
jb 0x420b56
inc eax
lea ecx, [ebp - 0xf4]
push eax
push dword [ebp - 0xf4]
call fcn.00402f10
mov ecx, dword [ebp - 0xd0]
xor eax, eax
xor edi, edi
mov dword [ebp - 0xe0], 7
mov dword [ebp - 0xe4], 0
mov word [ebp - 0xf4], ax
test ecx, ecx
je 0x420b91
mov eax, dword [ebp - 0xc8]
sub eax, ecx
sar eax, 2
push eax
push ecx
call fcn.00403d10
mov ecx, dword [ebp + 0x38]
test ecx, ecx
je 0x420ba9
mov esi, dword [ecx]
lea eax, [ebp + 0x14]
cmp ecx, eax
setne dl
movzx edx, dl
push edx
call dword [esi + 0x10]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004e1de4
mov esp, ebp
pop ebp
ret 0x34