Function at 0x41fab0
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 0x52149b
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.00421920
mov word [ebx + 0x18], 0
cmp ebx, esi
je 0x41fb27
push 0xffffffffffffffff
push 0
push esi
mov ecx, ebx
call fcn.00402670
push 0x38
lea eax, [ebp - 0x234]
push 0
push eax
call fcn.004fb2d0
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 0x41fb76
mov eax, dword [ebx]
jmp 0x41fb78
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 0x41fe65
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 0x41fc1d
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 0x41fc1f
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 0x41fc81
and eax, 0xfffffffe
mov dword [ebp - 0x1c8], eax
mov ecx, dword [ebp - 0xc8]
cmp ecx, 8
jb 0x41fc64
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 0x41fe50
mov eax, dword [ebp - 0x20c]
xor ecx, ecx
test eax, eax
je 0x41fcd9
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 0x53df2c
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 0x41fd1b
lea ecx, [ebp - 0xc4]
call fcn.00402450
test edi, edi
je 0x41fe50
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 0x41fe50
push 0
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpReceiveResponse]
test eax, eax
je 0x41fe50
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 0x41fe50
mov edi, dword [ebp - 0x1e8]
cmp edi, 0xc8
je 0x41fdf3
cmp dword [ebx + 0x4c], 0
jne 0x4208f1
push 0
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov edi, dword [ebp - 0x1e8]
mov dword [ebx + 0x4c], 0
jmp 0x4208f1
push 0x40
lea eax, [ebp - 0x54]
push 0
push eax
call fcn.004fb2d0
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 0x41fe50
cmp word [ebp - 0x54], 0
je 0x41fe44
lea eax, [ebp - 0x54]
push eax
call fcn.0050297a
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 0x41fe72
cmp dword [ebx + 0x4c], 0
jne 0x41fe65
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 0x4208f1
test edx, edx
jne 0x41fea9
cmp ecx, 0x40000000
ja 0x41fea9
test edx, edx
jne 0x41fea2
cmp ecx, 0xc800000
ja 0x41fea2
test edx, edx
jne 0x41fe9b
cmp ecx, 0x3200000
ja 0x41fe9b
lea esi, [edx + 1]
jmp 0x41feae
mov esi, 2
jmp 0x41feae
mov esi, 3
jmp 0x41feae
mov esi, 4
push 0x40
lea eax, [ebp - 0x94]
push 0
push eax
call fcn.004fb2d0
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 0x41fef6
mov dword [ebp - 0x1c0], 1
jmp 0x41ff3c
mov ecx, str.bytes
lea eax, [ebp - 0x94]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41ff27
test dx, dx
je 0x41ff23
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41ff27
add eax, 4
add ecx, 4
test dx, dx
jne 0x41ff01
xor eax, eax
jmp 0x41ff2c
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.004e1dfa
add esp, 4
mov ecx, eax
call fcn.004217e0
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.004e2c60
push esi
push edi
push edx
push eax
call fcn.004e2d00
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.004e2c60
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0x1d0]
cdq
push edx
push eax
push ecx
push esi
call fcn.004e2d00
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.0041f070
mov esi, eax
push 0x53ca10
push dword [ebp - 0x1d8]
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 2
push eax
call fcn.0040cc50
add esp, 0x14
push dword [ebp - 0x1d4]
mov edx, eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1b4]
call fcn.0040cdd0
add esp, 4
push str._slice
push eax
lea eax, [ebp - 0xc4]
mov byte [ebp - 4], 4
push eax
call fcn.00415000
add esp, 0xc
push esi
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0xac]
push eax
call fcn.0040cd60
mov esi, dword [ebp - 0x1bc]
add esp, 0xc
push eax
lea ecx, [esi + 0x2c]
call fcn.0040c1a0
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 0x4200e2
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 0x41ff68
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.00415060
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.00424310
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 0x4203ab
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.0041f090
add esp, 0xc
push eax
lea eax, [ebp - 0xc4]
mov byte [ebp - 4], 8
push str.Slice
push eax
call fcn.004224f0
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.00424600
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x1c0], edx
mov edi, eax
call fcn.00402450
push 0x53dfc8
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.00424600
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.00424600
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 0x4202d7
mov ecx, dword [ebp - 0x1c0]
cmp ecx, dword [eax + 0x14]
jne 0x4202d7
mov ecx, dword [ebp - 0x1bc]
cmp ecx, dword [eax + 0x18]
jne 0x4202d7
mov ecx, dword [ebp - 0x1c8]
cmp ecx, dword [eax + 0x1c]
jne 0x4202d7
add eax, 0x2c
cmp dword [eax + 0x14], 8
jb 0x4202b3
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4202d7
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 0x42037b
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.004246b0
lea ecx, [ebp - 0xac]
call fcn.00402450
push 0x53dfc8
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.004246b0
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.004246b0
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 0x420188
mov ebx, dword [ebp - 0x1f8]
push 0x53ca10
push dword [ebp - 0x1d8]
lea eax, [ebp - 0x124]
mov byte [ebp - 0x1b5], 0
push eax
call fcn.0040cc50
add esp, 0xc
push dword [ebp - 0x1d4]
mov edx, eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xf4]
call fcn.0040cdd0
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 Ordinal_1
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4206f6
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 0x4204d1
cmp ecx, dword [ebx + 0x24]
jne 0x4204d1
push str..ini
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0x10c]
push eax
call fcn.0040cc50
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x420498
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 0x420898
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.00421b20
jmp 0x420898
mov edi, dword [ebx + 0x58]
mov esi, dword [ebx + 0x54]
cmp esi, edi
je 0x42051f
nop dword [eax + eax]
mov eax, dword [esi]
add eax, 0x2c
cmp dword [eax + 0x14], 8
jb 0x4204ed
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 0x420518
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 0x4204e0
cmp ecx, dword [ebx + 0x24]
ja 0x42058c
jb 0x42052b
cmp edx, dword [ebx + 0x20]
jae 0x42058c
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 0x4206f6
mov eax, dword [esi]
add eax, 0x2c
cmp dword [eax + 0x14], 8
jb 0x420561
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x420580
mov eax, dword [esi]
add eax, 0x2c
cmp dword [eax + 0x14], 8
jb 0x420579
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
add esi, 4
cmp esi, edi
jne 0x420554
jmp 0x4206f6
mov esi, dword [ebx + 0x54]
mov edi, dword [ebx + 0x58]
mov byte [ebp - 0x1b5], 1
cmp esi, edi
je 0x4206f6
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.0041f090
add esp, 0xc
push eax
lea eax, [ebp - 0xc4]
mov byte [ebp - 4], 0xe
push str.Slice
push eax
call fcn.004224f0
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.00424600
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1bc], edx
call fcn.00402450
push 0x53dfc8
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.00424600
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.00424600
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 0x4206d6
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 0x4205a7
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.004e1dfa
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.0041f3f0
or esi, 0xffffffff
mov byte [ebp - 4], 0xd
cmp byte [ebp - 0x1b5], 0
mov dword [ebx + 0x50], eax
jne 0x4207ec
mov esi, dword [ebx + 0x54]
mov edi, dword [ebx + 0x58]
cmp esi, edi
je 0x4207e9
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 0x42076f
cmp dword [ecx + 0x24], edx
je 0x4207de
push dword [ebp - 0x1d4]
lea eax, [ebp - 0x238]
push dword [ebp - 0x1d8]
lea ecx, [ebp - 0x19c]
push eax
push esi
push ebx
call fcn.00420de0
push eax
lea eax, [ebp - 0x1e0]
mov byte [ebp - 4], 0x12
mov ecx, dword [ebx + 0x50]
push eax
call fcn.00422550
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x1e0]
test ecx, ecx
je 0x4207cf
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x4207cf
mov edx, dword [ecx + 0x78]
test edx, edx
je 0x4207c9
mov eax, dword [edx]
push ecx
mov ecx, edx
jmp 0x4207cd
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [ebp - 0x19c]
mov byte [ebp - 4], 0xd
call fcn.00421840
add esi, 4
cmp esi, edi
jne 0x420751
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.00421f90
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.00422790
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x1e0]
test ecx, ecx
je 0x42088d
lock xadd dword [ecx + 4], esi
dec esi
jne 0x42088d
mov edx, dword [ecx + 0x78]
test edx, edx
je 0x420887
mov eax, dword [edx]
push ecx
mov ecx, edx
jmp 0x42088b
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [ebp - 0x17c]
call fcn.004218c0
mov eax, dword [ebp - 0xe0]
cmp eax, 8
jb 0x4208b6
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 0x4208f1
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 0x420909
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.004e1bb1
mov esp, ebp
pop ebp
ret 0x34