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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x284
mov eax, dword [0x57a040]
xor eax, esp
mov dword [esp + 0x280], eax
push ebx
mov ebx, ecx
push esi
push edi
mov dword [esp + 0x18], ebx
movzx esi, word [ebx + 4]
lea edi, [ebx + 6]
mov edx, edi
mov ecx, esi
call fcn.0051f8f0
test al, al
jne 0x4717fc
push edi
push esi
push str._DGCreateItemRecv__Invalid_Account___d___s_
push 1
call fcn.005262e0
movzx eax, word [ebx + 4]
add esp, 0x10
mov ecx, 0xbf3318
push eax
call fcn.00519530
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x280]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
mov al, byte [ebx + 0x13]
mov esi, dword [esi*4 + 0x20a514c]
mov dword [esp + 0x14], esi
cmp al, 0xff
je 0x471d84
cmp al, 0xfe
je 0x471d72
cmp al, 0xed
je 0x47182e
cmp al, 0xec
je 0x47182e
cmp al, 0xeb
je 0x471836
cmp al, 0x6e
jae 0x471f6d
cmp al, 0xeb
jne 0x4719e1
lea ecx, [esp + 0x68]
call fcn.00493c10
movzx eax, byte [ebx + 0x1a]
mov word [esp + 0x6e], ax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x68], eax
movzx eax, byte [ebx + 0x1b]
movd xmm0, eax
movzx eax, byte [ebx + 0x2a]
push eax
lea eax, [ebx + 0x25]
push eax
movzx eax, byte [ebx + 0x24]
push eax
movzx eax, byte [ebx + 0x23]
push eax
movzx eax, byte [ebx + 0x22]
push eax
movzx eax, byte [ebx + 0x1f]
push eax
movzx eax, byte [ebx + 0x1e]
push eax
movzx eax, byte [ebx + 0x1d]
push eax
movzx eax, byte [ebx + 0x1c]
cvtdq2ps xmm0, xmm0
push eax
movzx eax, word [ebx + 0x18]
push eax
movss dword [esp + 0xb0], xmm0
call fcn.00493d40
movzx eax, word [ebx + 0x18]
mov ecx, 0x1a04
cmp ax, cx
je 0x4718b1
mov ecx, 0x1a05
cmp ax, cx
jne 0x4718be
push 0
push 1
lea ecx, [esp + 0x70]
call fcn.00496150
mov ecx, dword [ebx + 0x2c]
lea esi, [esp + 0x68]
test ecx, ecx
setne al
mov byte [esp + 0x122], al
mov byte [esp + 0x123], al
xor eax, eax
cmp eax, ecx
sbb eax, eax
sub esp, 0x10c
and eax, ecx
mov edi, esp
mov dword [esp + 0x230], eax
mov ecx, 0x43
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x120]
push dword [edi]
call fcn.0049dbe0
mov byte [esp + 0x11], al
cmp al, 0xff
je 0x471f6d
mov ecx, dword [edi]
mov dword [esp + 0x18], ecx
mov esi, dword [ecx*4 + 0x20a514c]
movzx ecx, al
imul edx, ecx, 0x10c
mov esi, dword [esi + 0x390]
add esi, edx
movzx eax, word [esi + 4]
mov ecx, eax
test ax, ax
js 0x47198d
mov eax, 0x2000
cmp cx, ax
jge 0x47198d
mov al, byte [esp + 0x11]
sub esp, 0x10c
mov byte [esp + 0x164], al
mov edi, esp
lea eax, [esp + 0x165]
mov dword [esp + 0x160], 0x14f311c1
mov ecx, 0x43
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.0049ee40
movzx eax, byte [esp + 0x55]
push eax
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x20]
call fcn.005192f0
mov edi, dword [esp + 0x14]
cmp dword [ebx + 0x2c], 0
jbe 0x471f6d
mov ax, word [esp + 0x6c]
mov word [esp + 0x58], ax
movzx eax, byte [esp + 0x11]
mov word [esp + 0x5a], ax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x54]
push 0xc
push eax
push dword [edi]
mov dword [esp + 0x60], 0x12d20cc1
call fcn.005192f0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x280]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
cmp al, 0xec
je 0x4719e9
cmp al, 0xed
jne 0x471a61
lea ecx, [esp + 0x68]
call fcn.00493c10
movzx eax, byte [ebx + 0x1a]
mov word [esp + 0x6e], ax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x68], eax
movzx eax, byte [ebx + 0x1b]
movd xmm0, eax
movzx eax, byte [ebx + 0x2a]
push eax
lea eax, [ebx + 0x25]
push eax
movzx eax, byte [ebx + 0x24]
push eax
movzx eax, byte [ebx + 0x23]
push eax
movzx eax, byte [ebx + 0x22]
push eax
movzx eax, byte [ebx + 0x1f]
push eax
movzx eax, byte [ebx + 0x1e]
push eax
movzx eax, byte [ebx + 0x1d]
push eax
movzx eax, byte [ebx + 0x1c]
cvtdq2ps xmm0, xmm0
push eax
movzx eax, word [ebx + 0x18]
push eax
movss dword [esp + 0xb0], xmm0
call fcn.00493d40
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x280]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
movzx eax, al
imul esi, eax, 0x15d38
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x48], eax
mov al, byte [ebx + 0x2a]
mov byte [esp + 0x24], al
mov al, byte [ebx + 0x24]
add esi, 0xd2f370
mov byte [esp + 0x28], al
mov al, byte [ebx + 0x23]
mov byte [esp + 0x2c], al
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x4c], eax
movzx eax, word [ebx + 0x20]
mov dword [esp + 0x50], eax
mov al, byte [ebx + 0x22]
mov byte [esp + 0x30], al
mov al, byte [ebx + 0x1f]
mov byte [esp + 0x34], al
mov al, byte [ebx + 0x1e]
mov byte [esp + 0x38], al
mov al, byte [ebx + 0x1d]
mov byte [esp + 0x3c], al
mov al, byte [ebx + 0x1c]
mov byte [esp + 0x40], al
mov al, byte [ebx + 0x12]
mov byte [esp + 0x13], al
movzx ecx, al
mov al, byte [ebx + 0x11]
movzx edx, al
mov byte [esp + 0x12], al
movzx eax, byte [ebx + 0x1b]
mov dword [esp + 0x1c], esi
movd xmm0, eax
mov al, byte [ebx + 0x1a]
mov byte [esp + 0x11], al
movzx eax, word [ebx + 0x18]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x44], eax
cmp edx, dword [esi + 0x14]
jge 0x471f6d
mov eax, dword [esi + 0x18]
cmp ecx, eax
jge 0x471f6d
imul eax, ecx
add eax, dword [esi + 0x10]
test byte [eax + edx], 4
jne 0x471f6d
mov eax, dword [esi + 0x18]
imul eax, ecx
add eax, dword [esi + 0x10]
test byte [eax + edx], 8
jne 0x471f6d
mov ecx, dword [esi + 0x15d34]
xor edx, edx
nop
imul edi, ecx, 0x124
mov dword [esp + 0x14], edi
movzx eax, word [edi + esi + 0x28]
mov ebx, eax
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x18]
test ax, ax
js 0x471b84
mov eax, 0x2000
cmp word [esp + 0x20], ax
jge 0x471b84
inc ecx
xor eax, eax
cmp ecx, 0x12c
cmovge ecx, eax
inc edx
cmp edx, 0x12c
jl 0x471b30
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x280]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
push dword [esp + 0x24]
movzx eax, byte [esp + 0x15]
mov word [edi + esi + 0x2a], ax
lea eax, [ebx + 0x25]
push eax
push dword [esp + 0x30]
mov dword [edi + esi + 0x134], 0
push dword [esp + 0x38]
movss dword [edi + esi + 0x44], xmm0
add edi, esi
push dword [esp + 0x40]
push dword [esp + 0x48]
lea ecx, [edi + 0x24]
push dword [esp + 0x50]
push dword [esp + 0x58]
push dword [esp + 0x60]
push dword [esp + 0x68]
call fcn.00493d40
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
test edx, edx
setne al
mov byte [ecx + esi + 0xde], al
mov byte [ecx + esi + 0xdf], al
xor eax, eax
cmp eax, edx
mov word [ecx + esi + 0x132], 1
mov dword [ecx + esi + 0x134], 1
sbb eax, eax
and eax, edx
mov dword [ecx + esi + 0xe0], eax
mov al, byte [esp + 0x12]
mov byte [ecx + esi + 0x130], al
mov al, byte [esp + 0x13]
mov byte [ecx + esi + 0x131], al
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
imul ecx, dword [0xbda9fc], 0x3e8
mov edx, dword [esp + 0x14]
add eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [edx + ecx + 0x138], eax
call esi
imul ecx, dword [0xbda9fc], 0x1f4
mov edx, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx + edx + 0x140], eax
mov eax, dword [esp + 0x4c]
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0x50]
mov dword [ecx + edx + 0x13c], eax
xor eax, eax
mov ecx, dword [edx + 0x15d34]
inc ecx
cmp ecx, 0x12c
cmovl eax, ecx
mov dword [edx + 0x15d34], eax
mov al, byte [ebx + 0x13]
cmp al, 0xb
jb 0x471cef
cmp al, 0x11
jbe 0x471c9f
cmp al, 0x34
jne 0x471cef
mov edx, dword [ebx + 0x14]
movzx esi, word [ebx + 0x18]
movzx ecx, al
cmp ecx, 0xb
jb 0x471cef
cmp ecx, 0x11
jbe 0x471cc4
xor eax, eax
cmp ecx, 0x34
sete al
lea eax, [eax*8 - 1]
jmp 0x471cc7
lea eax, [ecx - 0xb]
test eax, eax
js 0x471cef
cmp eax, 8
jge 0x471cef
imul eax, eax, 0x69c
cmp dword [eax + 0x57b0c8], 0xffffffff
jne 0x471cef
mov ecx, 0x1a13
cmp si, cx
jne 0x471cef
mov dword [eax + 0x57b0c8], edx
mov al, byte [ebx + 0x13]
cmp al, 0x2d
jb 0x471f6d
cmp al, 0x32
ja 0x471f6d
mov edx, dword [ebx + 0x14]
movzx esi, word [ebx + 0x18]
movzx eax, al
cmp eax, 0x2d
jb 0x471f6d
cmp eax, 0x32
ja 0x471f6d
lea ecx, [eax - 0x2d]
cmp eax, 0x2d
jl 0x471f6d
cmp ecx, 6
jge 0x471f6d
add eax, 0xffffffd3
imul eax, eax, 0x2ac
cmp dword [eax + 0x9d2b98], 0xffffffff
jne 0x471f6d
mov ecx, 0x1c40
cmp si, cx
jne 0x471f6d
mov dword [eax + 0x9d2b98], edx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x280]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x384]
and eax, 0xffc0
cmp eax, 0x340
jmp 0x471d94
mov eax, dword [esi + 0x384]
and eax, 0xffc0
cmp eax, 0x1c0
jne 0x471f6d
lea ecx, [esp + 0x178]
call fcn.00493c10
mov cl, byte [ebx + 0x1a]
movzx edi, word [ebx + 0x18]
movzx eax, cl
mov word [esp + 0x17e], ax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x178], eax
mov eax, 0x1a12
cmp di, ax
je 0x471e14
mov eax, 0x1a25
cmp di, ax
je 0x471e14
mov eax, 0x1a33
cmp di, ax
je 0x471e14
mov eax, 0x1c07
cmp di, ax
je 0x471e14
mov eax, 0x1c13
cmp di, ax
je 0x471e14
mov eax, 0x1c6d
cmp di, ax
je 0x471e14
movzx eax, byte [ebx + 0x22]
push eax
movzx eax, byte [ebx + 0x1f]
push eax
movzx eax, cl
push eax
push edi
call fcn.0049cad0
jmp 0x471e18
movzx eax, byte [ebx + 0x1b]
movd xmm0, eax
lea ecx, [esp + 0x178]
movzx eax, byte [ebx + 0x2a]
push eax
lea eax, [ebx + 0x25]
push eax
movzx eax, byte [ebx + 0x24]
push eax
movzx eax, byte [ebx + 0x23]
push eax
movzx eax, byte [ebx + 0x22]
push eax
movzx eax, byte [ebx + 0x1f]
push eax
movzx eax, byte [ebx + 0x1e]
push eax
movzx eax, byte [ebx + 0x1d]
push eax
movzx eax, byte [ebx + 0x1c]
cvtdq2ps xmm0, xmm0
push eax
push edi
movss dword [esp + 0x1c0], xmm0
call fcn.00493d40
movzx eax, word [ebx + 0x18]
mov ecx, 0x1a04
cmp ax, cx
je 0x471e79
mov ecx, 0x1a05
cmp ax, cx
jne 0x471e89
push 0
push 1
lea ecx, [esp + 0x180]
call fcn.00496150
mov ecx, dword [ebx + 0x2c]
test ecx, ecx
setne al
mov byte [esp + 0x232], al
mov byte [esp + 0x233], al
xor eax, eax
cmp eax, ecx
sbb eax, eax
xor edi, edi
and eax, ecx
xor edx, edx
mov dword [esp + 0x234], eax
mov ecx, dword [esi + 0x3d0]
add ecx, edx
call fcn.00493c10
mov eax, dword [esi + 0x3d4]
lea edi, [edi + 1]
add edx, 0x10c
mov byte [edi + eax - 1], 0xff
cmp edx, 0x2180
jl 0x471eb2
mov ebx, dword [esp + 0x14]
lea esi, [esp + 0x178]
push 0
sub esp, 0x10c
mov ecx, 0x43
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push dword [ebx]
call fcn.0049ed20
mov ecx, dword [esp + 0x18]
lea esi, [esp + 0x178]
mov ebx, dword [ebx]
mov eax, 0x64
mov edx, 1
mov word [esp + 0x54], 0x10c1
mov byte [esp + 0x56], 0x86
cmp byte [ecx + 0x13], 0xff
mov ecx, 0x43
cmove eax, edx
sub esp, 0x10c
mov byte [esp + 0x163], al
mov edi, esp
lea eax, [esp + 0x164]
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.0049ee40
movzx eax, byte [esp + 0x55]
push eax
lea eax, [esp + 0x58]
push eax
push ebx
call fcn.005192f0
mov eax, dword [ebx*4 + 0x20a514c]
mov dword [eax + 0x3e0], 0
mov ecx, dword [esp + 0x28c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret