Function at 0x412450
Capabilities:
Check for time delay via gettickcount

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x43f0f1
push eax
mov eax, 0x1194
mov dword fs:[0], esp
call fcn.00422920
push ebx
push ebp
mov ebp, dword [esp + 0x11b8]
mov ebx, ecx
push esi
push edi
test ebp, ebp
mov dword [esp + 0x44], ebx
jne 0x41248e
mov eax, 1
jmp 0x412eae
mov al, byte [esp + 0x4f]
push 0
lea ecx, [esp + 0x54]
mov byte [esp + 0x54], al
call fcn.00403320
mov edx, dword [esp + 0x11b4]
or esi, 0xffffffff
mov edi, edx
mov ecx, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x58]
call fcn.00403480
lea ecx, [esp + 0x50]
mov dword [esp + 0x11ac], 0
push ecx
mov ecx, ebx
mov dword [ebx + 0x307c], ebp
call fcn.00411e90
test al, al
jne 0x4124fe
push 1
lea ecx, [esp + 0x54]
mov dword [esp + 0x11b0], esi
call fcn.00403320
mov eax, 0xd
jmp 0x412eae
mov edx, dword [0x452110]
add edx, 0x1ac
push edx
call fcn.00409e20
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x64]
lea ecx, [esp + 0x70]
push eax
lea edx, [esp + 0x64]
push ecx
mov ecx, dword [0x452110]
push edx
call fcn.0040c590
mov eax, dword [ebx + 0x1028]
test eax, eax
jne 0x412546
mov eax, 0x4416fc
mov edx, dword [esp + 0x64]
lea ecx, [ebx + 0x1048]
push edx
mov edx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x68]
push edx
mov dword [esp + 0x1c], ecx
push ecx
mov ecx, dword [ebx + 0x1034]
push ecx
push eax
mov ecx, ebx
call fcn.004117d0
test al, al
jne 0x41258f
push 1
lea ecx, [esp + 0x54]
mov dword [esp + 0x11b0], esi
call fcn.00403320
mov eax, 0x1003
jmp 0x412eae
mov edx, dword [0x452110]
push 0
lea ecx, [esp + 0x18]
mov al, byte [edx + 0x134]
lea esi, [edx + 0x134]
mov byte [esp + 0x18], al
call fcn.00403320
mov ecx, dword [0x441700]
push ecx
push 0
push esi
lea ecx, [esp + 0x20]
call fcn.00403120
mov esi, dword [esp + 0x11b8]
mov byte [esp + 0x11ac], 1
test esi, esi
je 0x412612
push esi
call fcn.00409ba0
push 0x3a
push esi
call fcn.00423730
add esp, 0xc
mov edi, esi
test eax, eax
je 0x412604
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [esp + 0x1c]
call fcn.00403480
jmp 0x412635
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
jmp 0x41262c
mov edx, dword [ebx + 0x18]
test edx, edx
jne 0x41261e
mov edx, 0x4416fc
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.004033c0
lea edx, [esp + 0x14]
push 0x441dd0
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.00403c30
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x11ac], 2
test eax, eax
jne 0x412661
mov eax, 0x4416fc
push 0x44d874
push eax
call fcn.00409cb0
mov esi, eax
add esp, 8
test esi, esi
mov dword [esp + 0x24], esi
jne 0x4126c8
mov ecx, dword [esp + 0x10]
call fcn.00413790
push 1
lea ecx, [esp + 0x2c]
mov byte [esp + 0x11b0], 1
call fcn.00403320
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x11b0], 0
call fcn.00403320
push 1
lea ecx, [esp + 0x54]
mov dword [esp + 0x11b0], 0xffffffff
call fcn.00403320
mov eax, 4
jmp 0x412eae
push 2
push 0
push esi
call fcn.00423e71
push esi
call fcn.00423cee
mov edx, eax
mov eax, dword [ebx + 8]
add esp, 0x10
mov dword [esp + 0x3c], edx
test eax, eax
jne 0x4126ed
mov eax, 0x4416fc
mov ecx, dword [ebx + 0x1028]
test ecx, ecx
jne 0x4126fc
mov ecx, 0x4416fc
push 0
push 0
push edx
push 0
push 0
push eax
push ecx
lea ecx, [esp + 0x1c0]
push ecx
mov ecx, ebx
call fcn.00411820
lea edi, [esp + 0x1a4]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1a4]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
mov ecx, ebx
call fcn.00411b00
test al, al
jne 0x412798
mov ecx, dword [esp + 0x10]
call fcn.00413790
call sub.WS2_32.dll_WSACleanup
push esi
call fcn.00421959
add esp, 4
lea ecx, [esp + 0x28]
mov byte [esp + 0x11ac], 1
push 1
call fcn.00403320
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x11b0], 0
call fcn.00403320
push 1
lea ecx, [esp + 0x54]
mov dword [esp + 0x11b0], 0xffffffff
call fcn.00403320
mov eax, 8
jmp 0x412eae
lea eax, [esp + 0xa4]
push 0x100
push eax
mov ecx, ebx
call fcn.00411be0
lea ecx, [esp + 0xa4]
push 0x20
push ecx
call fcn.00423730
add esp, 8
test eax, eax
jne 0x412808
push 1
lea ecx, [esp + 0x2c]
mov byte [esp + 0x11b0], 1
call fcn.00403320
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x11b0], 0
call fcn.00403320
push 1
lea ecx, [esp + 0x54]
mov dword [esp + 0x11b0], 0xffffffff
call fcn.00403320
mov eax, 1
jmp 0x412eae
inc eax
push 3
lea edx, [esp + 0x44]
push eax
push edx
call fcn.00423bf0
add esp, 0xc
mov byte [esp + 0x43], 0
mov esi, 0x44d870
lea eax, [esp + 0x40]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x41284b
test cl, cl
je 0x412847
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x41284b
add eax, 2
add esi, 2
test cl, cl
jne 0x412827
xor eax, eax
jmp 0x412850
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4128b0
mov ecx, dword [esp + 0x10]
call fcn.00413790
mov eax, dword [esp + 0x24]
push eax
call fcn.00421959
add esp, 4
lea ecx, [esp + 0x28]
mov byte [esp + 0x11ac], 1
push 1
call fcn.00403320
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x11b0], 0
call fcn.00403320
push 1
lea ecx, [esp + 0x54]
mov dword [esp + 0x11b0], 0xffffffff
call fcn.00403320
mov eax, 0xf
jmp 0x412eae
mov esi, 0x44d86c
lea eax, [esp + 0x40]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4128df
test cl, cl
je 0x4128d9
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4128df
add eax, 2
add esi, 2
test cl, cl
jne 0x4128b9
xor esi, esi
xor eax, eax
jmp 0x4128e6
sbb eax, eax
sbb eax, 0xffffffff
xor esi, esi
cmp eax, esi
je 0x412984
mov esi, 0x44d868
lea eax, [esp + 0x40]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x41291d
test cl, cl
je 0x412917
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x41291d
add eax, 2
add esi, 2
test cl, cl
jne 0x4128f7
xor esi, esi
xor eax, eax
jmp 0x412924
sbb eax, eax
sbb eax, 0xffffffff
xor esi, esi
cmp eax, esi
je 0x412984
mov ecx, dword [esp + 0x10]
call fcn.00413790
mov eax, dword [esp + 0x24]
push eax
call fcn.00421959
add esp, 4
lea ecx, [esp + 0x28]
mov byte [esp + 0x11ac], 1
push 1
call fcn.00403320
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x11b0], 0
call fcn.00403320
push 1
lea ecx, [esp + 0x54]
mov dword [esp + 0x11b0], 0xffffffff
call fcn.00403320
mov eax, 9
jmp 0x412eae
lea ecx, [esp + 0x84]
push 0x1e
push ecx
push str.Content_Length
mov ecx, ebx
call fcn.00411c50
lea edx, [esp + 0x84]
push edx
call fcn.0042399e
add esp, 4
cmp eax, 1
jne 0x4129dc
mov ecx, dword [esp + 0x10]
mov dword [ebp + 0x9c], esi
mov dword [ebp + 0xa0], esi
mov dword [ebp + 0xa4], esi
call fcn.00413790
mov eax, dword [esp + 0x24]
push eax
call fcn.00421959
add esp, 4
jmp 0x412e28
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
add eax, ecx
mov edx, dword [esi + 0x307c]
push eax
push ecx
mov dword [esp + 0x74], eax
mov dword [edx + 0x80], ecx
mov edx, dword [esi + 0x307c]
mov dword [edx + 0x7c], eax
call fcn.00410e40
mov eax, dword [esi + 0x307c]
add eax, 0x84
push eax
call fcn.004221a3
add esp, 0xc
xor esi, esi
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x38], esi
jmp 0x412a34
xor esi, esi
mov al, byte [0x452114]
test al, al
jne 0x412c00
mov al, byte [0x452115]
test al, al
jne 0x412c00
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x3c]
mov edi, eax
sub edi, ecx
cmp edi, 0x32
jbe 0x412ad3
mov esi, dword [ebp + 0x80]
lea ecx, [ebx + ebx*4]
xor edx, edx
lea eax, [esi + esi*4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
shl ecx, 3
lea eax, [eax + eax*4]
shl eax, 3
sub eax, ecx
mov ecx, dword [esp + 0x38]
div edi
test ecx, ecx
mov dword [ebp + 0x94], eax
jne 0x412a97
mov dword [esp + 0x38], eax
cmp dword [esp + 0x48], eax
jg 0x412aa1
mov dword [esp + 0x48], eax
cmp dword [esp + 0x38], eax
jl 0x412aab
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x11bc]
cmp eax, ecx
jle 0x412ac7
test ecx, ecx
jle 0x412ac7
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x412a32
mov ebx, esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
push 0x1000
lea edi, [edx + 0x207c]
push edi
call fcn.00413b00
mov esi, eax
test esi, esi
jle 0x412cac
mov edx, dword [ebp + 0x80]
mov eax, dword [ebp + 0x7c]
add edx, esi
mov dword [esp + 0x74], eax
mov ecx, edx
push eax
mov dword [esp + 0x80], ecx
xor ecx, ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x7c], ecx
fild qword [esp + 0x80]
push esi
mov dword [ebp + 0x80], edx
fidiv dword [esp + 0x7c]
fstp dword [ebp + 0x90]
call fcn.00410e40
mov eax, dword [esp + 0x2c]
push eax
push esi
push 1
push edi
call fcn.00423ab6
add esp, 0x18
cmp eax, esi
je 0x412a32
mov ecx, dword [esp + 0x10]
call fcn.00413790
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00421959
mov ecx, dword [esp + 0x30]
xor esi, esi
add esp, 4
cmp ecx, esi
je 0x412b8e
mov al, byte [ecx - 1]
test al, al
je 0x412b84
cmp al, 0xff
je 0x412b84
dec al
mov byte [ecx - 1], al
jmp 0x412b8e
dec ecx
push ecx
call fcn.0043359c
add esp, 4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], esi
cmp ecx, esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
je 0x412bbe
mov al, byte [ecx - 1]
test al, al
je 0x412bb4
cmp al, 0xff
je 0x412bb4
dec al
mov byte [ecx - 1], al
jmp 0x412bbe
dec ecx
push ecx
call fcn.0043359c
add esp, 4
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x18], esi
cmp ecx, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
je 0x412bf6
mov al, byte [ecx - 1]
test al, al
je 0x412bec
cmp al, 0xff
je 0x412bec
dec al
mov byte [ecx - 1], al
mov eax, 6
jmp 0x412eae
dec ecx
push ecx
call fcn.0043359c
add esp, 4
mov eax, 6
jmp 0x412eae
mov ecx, dword [esp + 0x10]
call fcn.00413790
mov edx, dword [esp + 0x24]
push edx
call fcn.00421959
mov ecx, dword [esp + 0x30]
add esp, 4
cmp ecx, esi
je 0x412c3a
mov al, byte [ecx - 1]
test al, al
je 0x412c30
cmp al, 0xff
je 0x412c30
dec al
mov byte [ecx - 1], al
jmp 0x412c3a
dec ecx
push ecx
call fcn.0043359c
add esp, 4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], esi
cmp ecx, esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
je 0x412c6a
mov al, byte [ecx - 1]
test al, al
je 0x412c60
cmp al, 0xff
je 0x412c60
dec al
mov byte [ecx - 1], al
jmp 0x412c6a
dec ecx
push ecx
call fcn.0043359c
add esp, 4
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x18], esi
cmp ecx, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
je 0x412ca2
mov al, byte [ecx - 1]
test al, al
je 0x412c98
cmp al, 0xff
je 0x412c98
dec al
mov byte [ecx - 1], al
mov eax, 0xb
jmp 0x412eae
dec ecx
push ecx
call fcn.0043359c
add esp, 4
mov eax, 0xb
jmp 0x412eae
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x307c]
mov byte [eax + 0x8c], 1
call fcn.00413790
mov edi, dword [esp + 0x24]
push 2
push 0
push edi
call fcn.00423e71
push edi
call fcn.00423cee
push edi
mov esi, eax
call fcn.00421959
mov eax, dword [esp + 0x80]
add esp, 0x14
cmp esi, eax
je 0x412d8c
mov ecx, dword [esp + 0x2c]
xor esi, esi
cmp ecx, esi
je 0x412d1a
mov al, byte [ecx - 1]
test al, al
je 0x412d10
cmp al, 0xff
je 0x412d10
dec al
mov byte [ecx - 1], al
jmp 0x412d1a
dec ecx
push ecx
call fcn.0043359c
add esp, 4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], esi
cmp ecx, esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
je 0x412d4a
mov al, byte [ecx - 1]
test al, al
je 0x412d40
cmp al, 0xff
je 0x412d40
dec al
mov byte [ecx - 1], al
jmp 0x412d4a
dec ecx
push ecx
call fcn.0043359c
add esp, 4
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x18], esi
cmp ecx, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
je 0x412d82
mov al, byte [ecx - 1]
test al, al
je 0x412d78
cmp al, 0xff
je 0x412d78
dec al
mov byte [ecx - 1], al
mov eax, 7
jmp 0x412eae
dec ecx
push ecx
call fcn.0043359c
add esp, 4
mov eax, 7
jmp 0x412eae
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, dword [esp + 0x68]
sub ecx, eax
jne 0x412da6
xor esi, esi
mov dword [ebp + 0xa4], esi
jmp 0x412de0
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov eax, 1
je 0x412db9
mov eax, edx
mov dword [ebp + 0x98], eax
mov edx, dword [ebx + 0x307c]
mov eax, dword [edx + 0x7c]
xor edx, edx
div ecx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 6
mov dword [ebp + 0xa4], eax
xor esi, esi
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
lea edx, [ecx*8]
lea ecx, [eax*8]
mov eax, dword [esp + 0x18]
mov dword [ebp + 0xa0], ecx
cmp eax, esi
mov dword [ebp + 0x9c], edx
mov ecx, 0x4416fc
je 0x412e11
mov ecx, eax
mov eax, dword [esp + 0x2c]
cmp eax, esi
jne 0x412e1e
mov eax, 0x4416fc
push ecx
push eax
call fcn.00409ac0
add esp, 8
mov ecx, dword [esp + 0x2c]
cmp ecx, esi
je 0x412e4c
mov al, byte [ecx - 1]
test al, al
je 0x412e42
cmp al, 0xff
je 0x412e42
dec al
mov byte [ecx - 1], al
jmp 0x412e4c
dec ecx
push ecx
call fcn.0043359c
add esp, 4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], esi
cmp ecx, esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
je 0x412e7c
mov al, byte [ecx - 1]
test al, al
je 0x412e72
cmp al, 0xff
je 0x412e72
dec al
mov byte [ecx - 1], al
jmp 0x412e7c
dec ecx
push ecx
call fcn.0043359c
add esp, 4
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x18], esi
cmp ecx, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
je 0x412eac
mov al, byte [ecx - 1]
test al, al
je 0x412ea2
cmp al, 0xff
je 0x412ea2
dec al
mov byte [ecx - 1], al
jmp 0x412eac
dec ecx
push ecx
call fcn.0043359c
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x11a4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x11a0
ret 0x10