Function at 0x475490
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
mov eax, dword [0x57a040]
xor eax, esp
mov dword [esp + 0x30], eax
cmp dword [0xbda910], 0
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov dword [esp + 0x14], eax
je 0x475ca1
mov esi, dword [ebx*4 + 0x20a514c]
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x30]
mov dword [esp + 0x14], esi
push eax
movzx edi, byte [esi + 0x149]
mov ecx, 0x9f436c
mov dword [esp + 0x24], edi
call fcn.00405650
mov eax, dword [esp + 0x34]
mov ecx, dword [0x9f436c]
cmp byte [eax + 0xd], 0
jne 0x4754fd
cmp edi, dword [eax + 0x10]
jge 0x4754ff
mov eax, ecx
cmp eax, ecx
je 0x475515
mov ecx, dword [eax + 0x60]
cmp ecx, 0xffffffff
je 0x475515
xor eax, eax
cmp ecx, 1
sete al
jmp 0x47551a
mov eax, dword [0xbda910]
test eax, eax
jne 0x475567
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0xa7
push eax
lea eax, [esp + 0x30]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x34]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x475553
cmp dword [eax + 0x10], 0xa7
jle 0x475555
mov eax, ecx
cmp eax, ecx
jne 0x475c83
push 0xa7
jmp 0x475c69
test ebx, ebx
js 0x475ca1
cmp ebx, 0x1194
jge 0x475ca1
cmp dword [esi + 4], 3
jne 0x475ca1
movzx eax, word [esi + 0x78]
cmp eax, 1
je 0x475597
cmp eax, 6
jne 0x475ca1
cmp byte [esi + 0xa], 0
jg 0x475ca1
cmp byte [esi + 0x9c0], 0
jne 0x475ca1
mov edx, dword [esp + 0x14]
movzx ecx, byte [edx + 4]
movzx eax, byte [edx + 5]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x1c], ecx
cmp ecx, 0x1194
jae 0x475c29
mov edi, dword [ecx*4 + 0x20a514c]
cmp dword [edi + 4], 3
jne 0x475c29
movzx eax, word [edi + 0x78]
cmp eax, 1
je 0x4755f2
cmp eax, 6
jne 0x475c29
cmp byte [edi + 0xa], 0
jg 0x475c29
cmp byte [edi + 0x9c0], 0
jne 0x475c29
cmp ebx, ecx
je 0x475c29
test byte [esi + 0x384], 3
jne 0x475be7
test byte [edi + 0x384], 3
jne 0x475be7
test byte [edi + 0x3e4], 2
jne 0x47567d
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0xa2
push eax
lea eax, [esp + 0x30]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x34]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x475669
cmp dword [eax + 0x10], 0xa2
jle 0x47566b
mov eax, ecx
cmp eax, ecx
jne 0x475c83
push 0xa2
jmp 0x475c69
mov eax, dword [esi + 0x3ec]
test eax, eax
js 0x47568e
cmp eax, 0x1194
jl 0x4756b0
mov eax, dword [esi + 0x3f0]
test eax, eax
js 0x47569f
cmp eax, 0x1194
jl 0x4756b0
mov eax, dword [esi + 0x3f4]
test eax, eax
js 0x4756f9
cmp eax, 0x1194
jge 0x4756f9
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0xa3
push eax
lea eax, [esp + 0x30]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x34]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x4756e5
cmp dword [eax + 0x10], 0xa3
jle 0x4756e7
mov eax, ecx
cmp eax, ecx
jne 0x475c83
push 0xa3
jmp 0x475c69
mov eax, dword [edi + 0x3ec]
test eax, eax
js 0x47570a
cmp eax, 0x1194
jl 0x47572c
mov eax, dword [edi + 0x3f0]
test eax, eax
js 0x47571b
cmp eax, 0x1194
jl 0x47572c
mov eax, dword [edi + 0x3f4]
test eax, eax
js 0x475775
cmp eax, 0x1194
jge 0x475775
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0xa4
push eax
lea eax, [esp + 0x30]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x34]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x475761
cmp dword [eax + 0x10], 0xa4
jle 0x475763
mov eax, ecx
cmp eax, ecx
jne 0x475c83
push 0xa4
jmp 0x475c69
mov eax, dword [esi + 0x290]
test eax, eax
je 0x4757d1
cmp byte [eax + 0x591], 1
jne 0x4757d1
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0xa5
push eax
lea eax, [esp + 0x30]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x34]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x4757bd
cmp dword [eax + 0x10], 0xa5
jle 0x4757bf
mov eax, ecx
cmp eax, ecx
jne 0x475c83
push 0xa5
jmp 0x475c69
mov eax, dword [edi + 0x290]
test eax, eax
je 0x47582d
cmp byte [eax + 0x591], 1
jne 0x47582d
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0xa6
push eax
lea eax, [esp + 0x30]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x34]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x475819
cmp dword [eax + 0x10], 0xa6
jle 0x47581b
mov eax, ecx
cmp eax, ecx
jne 0x475c83
push 0xa6
jmp 0x475c69
cmp word [esi + 0xd0], 0x32
jle 0x475b59
cmp word [edi + 0xd0], 0x32
jl 0x475b59
mov eax, dword [0xa0cdb0]
test eax, eax
je 0x475b10
cmp dword [eax + 4], 0
je 0x475b10
cmp word [eax + 0x9e], 0xfffd
jne 0x475b10
mov al, byte [esi + 0x149]
cmp al, 0x28
je 0x475ac7
cmp al, 9
je 0x475ac7
cmp al, 0x20
je 0x475ac7
cmp al, 0xb
jb 0x4758dc
cmp al, 0x11
jbe 0x475ac7
cmp al, 0x34
je 0x475ac7
cmp al, 0x17
jbe 0x475ac7
cmp al, 0x35
je 0x475ac7
cmp al, 0x2d
jb 0x4758dc
cmp al, 0x32
jbe 0x475ac7
cmp al, 0x40
je 0x475ac7
cmp al, 0x41
jb 0x4758dc
cmp al, 0x44
jbe 0x475ac7
cmp al, 0x45
jb 0x4758dc
cmp al, 0x48
jbe 0x475ac7
mov eax, dword [0x5d8fb0]
cmp eax, 5
je 0x475a7e
cmp eax, 6
je 0x475a7e
cmp eax, 7
je 0x475a7e
mov ax, word [edx + 0xe]
lea ecx, [esp + 0x20]
xorps xmm0, xmm0
mov word [esp + 0x28], 0
movq qword [esp + 0x20], xmm0
movq xmm0, qword [edx + 6]
mov word [esp + 0x28], ax
lea eax, [edi + 0x86]
mov byte [esp + 0x2a], 0
movq qword [esp + 0x20], xmm0
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x475950
test dl, dl
je 0x47594c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x475950
add eax, 2
add ecx, 2
test dl, dl
jne 0x475930
xor eax, eax
jmp 0x475955
sbb eax, eax
or eax, 1
test eax, eax
je 0x47596d
push 0xa9
mov ecx, 0xa9b7b8
call fcn.004ba320
jmp 0x475c86
mov edx, esi
lea eax, [edi + 0x258]
xor ecx, ecx
sub edx, edi
nop dword [eax]
cmp dword [edx + eax], 0
jge 0x475a6a
cmp dword [eax], 0
jge 0x475a56
inc ecx
add eax, 4
cmp ecx, 5
jl 0x475980
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x3ec], eax
mov dword [esi + 0x3f0], 0xffffffff
mov byte [esi + 0x3f8], 0
mov dword [esi + 0x3f4], 0xffffffff
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x3fc], eax
mov dword [edi + 0x3ec], 0xffffffff
mov dword [edi + 0x3f0], ebx
mov byte [edi + 0x3f8], 0
mov dword [edi + 0x3f4], 0xffffffff
call esi
mov dword [edi + 0x3fc], eax
mov eax, ebx
shr eax, 8
mov byte [esp + 0x30], al
mov eax, dword [ebx*4 + 0x20a514c]
push 0x10
mov dword [esp + 0x30], 0x2aa10c1
mov byte [esp + 0x35], bl
movq xmm0, qword [eax + 0x86]
mov ax, word [eax + 0x8e]
mov word [esp + 0x3e], ax
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x24]
movq qword [esp + 0x3e], xmm0
call fcn.005192f0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 8
push 0xab
mov ecx, 0xa9b7b8
call fcn.004ba320
jmp 0x475c86
push 0xaa
mov ecx, 0xa9b7b8
call fcn.004ba320
jmp 0x475c86
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xa8
push eax
lea eax, [esp + 0x30]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x34]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x475ab3
cmp dword [eax + 0x10], 0xa8
jle 0x475ab5
mov eax, ecx
cmp eax, ecx
jne 0x475c83
push 0xa8
jmp 0x475c69
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xa7
push eax
lea eax, [esp + 0x30]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x34]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x475afc
cmp dword [eax + 0x10], 0xa7
jle 0x475afe
mov eax, ecx
cmp eax, ecx
jne 0x475c83
push 0xa7
jmp 0x475c69
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xa7
push eax
lea eax, [esp + 0x30]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x34]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x475b45
cmp dword [eax + 0x10], 0xa7
jle 0x475b47
mov eax, ecx
cmp eax, ecx
jne 0x475c83
push 0xa7
jmp 0x475c69
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x278
push eax
lea eax, [esp + 0x30]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x34]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x475b8e
cmp dword [eax + 0x10], 0x278
jle 0x475b90
mov eax, ecx
cmp eax, ecx
jne 0x475bb3
push 0x278
push str.Could_not_find_message__d_
push 0xa9b7bc
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, 0xa9b7bc
jmp 0x475bb6
add eax, 0x18
push 0x32
push eax
push 0
push 0
push 0
push 0
push 0
push 1
push ebx
push 0xb90558
call fcn.004cdc70
add esp, 0x28
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xa1
push eax
lea eax, [esp + 0x30]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x34]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x475c1c
cmp dword [eax + 0x10], 0xa1
jle 0x475c1e
mov eax, ecx
cmp eax, ecx
jne 0x475c83
push 0xa1
jmp 0x475c69
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xa0
push eax
lea eax, [esp + 0x30]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x34]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x475c5e
cmp dword [eax + 0x10], 0xa0
jle 0x475c60
mov eax, ecx
cmp eax, ecx
jne 0x475c83
push 0xa0
push str.Could_not_find_message__d_
push 0xa9b7bc
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, 0xa9b7bc
jmp 0x475c86
add eax, 0x18
push eax
push 0
push 0
push 0
push 0
push 0
push 1
push ebx
push 0xb90558
call fcn.004cdc70
add esp, 0x24
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 8