Function at 0x465bf0
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
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebx]
mov dword [esp + 0x1c], ebx
mov esi, dword [edi]
cmp ecx, esi
je 0x466eb8
movzx eax, word [ebx + 0x78]
cmp eax, 1
jne 0x465c78
test ecx, ecx
js 0x466eb8
cmp ecx, 0x1194
jge 0x466eb8
mov eax, dword [ecx*4 + 0x20a514c]
cmp dword [eax + 4], 3
jne 0x466eb8
movzx edx, word [eax + 0x78]
cmp edx, 1
je 0x465c61
cmp edx, 6
jne 0x466eb8
cmp byte [eax + 0xa], 0
jg 0x466eb8
cmp byte [eax + 0x9c0], 0
jne 0x466eb8
cmp word [edi + 0x78], 1
jne 0x465cd8
test esi, esi
js 0x466eb8
cmp esi, 0x1194
jge 0x466eb8
mov eax, dword [esi*4 + 0x20a514c]
cmp dword [eax + 4], 3
jne 0x466eb8
movzx ebx, word [eax + 0x78]
mov dword [esp + 0x10], ebx
cmp ebx, 1
mov ebx, dword [esp + 0x1c]
je 0x465cc1
cmp word [esp + 0x10], 6
jne 0x466eb8
cmp byte [eax + 0xa], 0
jg 0x466eb8
cmp byte [eax + 0x9c0], 0
jne 0x466eb8
mov al, byte [edi + 0x149]
mov ah, byte [ebx + 0x149]
mov byte [esp + 0xf], al
cmp ah, al
jne 0x466eb8
cmp dword [0xbda8c0], 0
jne 0x465d06
cmp byte [ebx + 0x214], 0
jne 0x466eb8
movsx edx, word [ebx + 0x146]
movzx eax, ah
imul eax, eax, 0x15d38
mov dword [esp + 0x10], edx
movsx edx, word [ebx + 0x144]
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], eax
test edx, edx
js 0x465d74
mov ebx, edx
cmp ebx, dword [eax + 0xd2f384]
mov ebx, dword [esp + 0x1c]
jge 0x465d74
cmp dword [esp + 0x10], 0
jl 0x465d74
mov eax, dword [eax + 0xd2f388]
cmp dword [esp + 0x10], eax
jge 0x465d74
movsx edx, word [ebx + 0x146]
imul eax, edx
mov edx, dword [esp + 0x18]
add eax, dword [edx + 0xd2f380]
movsx edx, word [ebx + 0x144]
mov al, byte [eax + edx]
test al, 1
jne 0x466eb8
movzx eax, byte [esp + 0xf]
movsx edx, word [edi + 0x146]
imul eax, eax, 0x15d38
mov dword [esp + 0x10], edx
movsx edx, word [edi + 0x144]
test edx, edx
movzx edx, word [edi + 0x78]
mov dword [esp + 0x18], eax
js 0x465ded
movsx ebx, word [edi + 0x144]
cmp ebx, dword [eax + 0xd2f384]
mov ebx, dword [esp + 0x1c]
jge 0x465ded
cmp dword [esp + 0x10], 0
jl 0x465ded
mov eax, dword [eax + 0xd2f388]
cmp dword [esp + 0x10], eax
jge 0x465ded
movsx edx, word [edi + 0x146]
imul eax, edx
mov edx, dword [esp + 0x18]
add eax, dword [edx + 0xd2f380]
movsx edx, word [edi + 0x144]
mov al, byte [eax + edx]
movzx edx, word [edi + 0x78]
test al, 1
jne 0x466eb8
cmp dx, 1
jne 0x465e0d
cmp dword [ebx + 0xda8], 1
je 0x466eb8
cmp dword [edi + 0xda8], 1
je 0x466eb8
push ecx
call fcn.004748f0
test eax, eax
jne 0x466eb8
push esi
call fcn.004748f0
test eax, eax
jne 0x466eb8
cmp dword [0x5d8fb0], 7
movzx ecx, word [edi + 0x78]
mov al, byte [esp + 0xf]
mov dword [esp + 0x18], 0x115
mov dword [esp + 0x10], 0x11b
je 0x465e83
cmp ecx, 2
jne 0x465e83
cmp al, 0x1e
jne 0x465e83
movzx edx, word [edi + 0xcc]
cmp dx, word [esp + 0x18]
je 0x466eb8
cmp dx, word [esp + 0x10]
je 0x466eb8
mov dword [esp + 0x18], 0x120
cmp dx, word [esp + 0x18]
je 0x466eb8
mov edx, dword [0x61f4ac]
cmp edx, 3
je 0x465e93
cmp edx, 5
jne 0x465ea1
cmp cx, 2
jne 0x465ea1
cmp al, 0x22
je 0x466eb8
cmp dword [ebx + 0x28c], 0
jle 0x465ee6
mov eax, dword [ebx + 0x290]
test eax, eax
je 0x465ee6
cmp byte [eax + 0x591], 0
je 0x465ee6
mov al, byte [eax + 0x592]
cmp al, 1
jne 0x465ed8
mov eax, dword [0xbf8c98]
cmp dword [eax + 0x60], 0
je 0x466191
jmp 0x465ee6
test al, al
jne 0x465ee6
cmp cx, 2
je 0x466eb8
cmp cx, 3
je 0x466eb8
cmp byte [edi + 0x7a], 0
je 0x466eb8
cmp dword [edi + 0x200], 2
jne 0x466eb8
cmp byte [edi + 0x214], 0
jne 0x466eb8
cmp cx, 2
jne 0x465f72
movzx eax, word [edi + 0x316]
mov edx, eax
cmp ax, 0x33
jl 0x465f33
cmp dx, 0x3a
jle 0x466eb8
movzx eax, word [edi + 0xcc]
cmp eax, 0x64
jb 0x465f48
cmp eax, 0x6e
jbe 0x466eb8
mov edx, 0x20b
cmp ax, dx
je 0x466eb8
mov edx, 0xdd
cmp ax, dx
je 0x466eb8
mov edx, 0xde
cmp ax, dx
je 0x466eb8
movzx edx, word [ebx + 0x78]
cmp edx, 1
jne 0x465fa2
cmp cx, 2
jne 0x465fa2
mov eax, dword [ebx + 0x2a8]
test eax, eax
jns 0x465f8f
mov eax, dword [ebx]
jmp 0x465fc2
cmp eax, 0x1194
jge 0x465fa2
cmp eax, esi
je 0x466eb8
mov eax, dword [ebx]
jmp 0x465fc2
mov eax, dword [ebx]
cmp edx, 2
jne 0x465fbc
mov edx, dword [ebx + 0x2a8]
test edx, edx
js 0x465fbc
cmp edx, 0x1194
cmovl eax, edx
cmp cx, 2
jne 0x465fd5
mov ecx, dword [edi + 0x2a8]
test ecx, ecx
js 0x465fd5
cmp ecx, 0x1194
cmovl esi, ecx
push dword [esi*4 + 0x20a514c]
mov ecx, 0x57ac4c
push dword [eax*4 + 0x20a514c]
call fcn.0040a0a0
test al, al
je 0x466eb8
cmp word [ebx + 0x78], 1
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jne 0x466022
call esi
mov dword [ebx + 0x72c], eax
call esi
mov dword [ebx + 0x730], eax
call esi
mov dword [ebx + 0x734], eax
call esi
mov dword [ebx + 0x738], eax
cmp word [edi + 0x78], 1
jne 0x466049
call esi
mov dword [edi + 0x72c], eax
call esi
mov dword [edi + 0x730], eax
call esi
mov dword [edi + 0x734], eax
call esi
mov dword [edi + 0x738], eax
mov eax, dword [ebx + 0x2a8]
test eax, eax
js 0x466063
cmp eax, 0x1194
jge 0x466063
mov edx, dword [edi]
mov ecx, ebx
call fcn.004bd4f0
cmp word [ebx + 0x78], 1
jne 0x4660e7
mov eax, dword [ebx]
mov edx, dword [edi]
lea ecx, [eax + eax*4]
mov eax, dword [ecx*8 + 0xcd73c4]
test eax, eax
js 0x46609b
cmp eax, 0x1194
jge 0x46609b
mov eax, dword [eax*4 + 0x20a514c]
cmp word [eax + 0xcc], 4
jne 0x46609b
mov dword [ecx*8 + 0xcd73c8], edx
cmp word [ebx + 0x78], 1
jne 0x4660e7
cmp word [edi + 0x78], 1
jne 0x4660e7
mov eax, dword [ebx + 0x3f4]
test eax, eax
js 0x4660e7
cmp eax, 0x1194
jge 0x4660e7
mov ecx, dword [edi + 0x3f4]
test ecx, ecx
js 0x4660e7
cmp ecx, 0x1194
jge 0x4660e7
cmp eax, dword [edi]
jne 0x4660e7
cmp ecx, dword [ebx]
jne 0x4660e7
mov byte [esp + 0xf], 1
call esi
mov dword [ebx + 0x3fc], eax
mov al, byte [esp + 0xf]
jmp 0x4660ed
xor al, al
mov byte [esp + 0xf], al
cmp word [edi + 0x78], 1
jne 0x466100
test al, al
je 0x466100
call esi
mov dword [edi + 0x3fc], eax
push 0x12
push ebx
call fcn.004774b0
mov eax, dword [edi + 0x624]
xor ecx, ecx
add eax, 4
mov dl, byte [eax]
cmp dl, 0xff
je 0x46611f
cmp dl, 0x22
je 0x46617d
inc ecx
add eax, 0x1c
cmp ecx, 0x20
jl 0x466113
mov eax, dword [edi + 0x624]
xor ecx, ecx
add eax, 4
mov dl, byte [eax]
cmp dl, 0xff
je 0x46613f
cmp dl, 0x3b
je 0x46617d
inc ecx
add eax, 0x1c
cmp ecx, 0x20
jl 0x466133
movzx esi, word [edi + 0x78]
cmp esi, 2
jne 0x4661d9
mov eax, 0xc8
cmp word [edi + 0xcc], ax
jne 0x4661a7
mov eax, dword [ebx]
mov edx, dword [eax*4 + 0x20a514c]
cmp byte [edx + 0x7a], 0
je 0x46617d
push esi
mov ecx, edi
call fcn.00524d10
add esp, 4
mov edx, dword [edi]
mov ecx, dword [ebx]
push 0
push 0
push 0
push 0
call fcn.004e94a0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [edi + 0x624]
xor ecx, ecx
add eax, 4
mov dl, byte [eax]
cmp dl, 0xff
je 0x4661be
cmp dl, 0x3f
je 0x46617d
inc ecx
add eax, 0x1c
cmp ecx, 0x20
jl 0x4661b2
cmp dword [edi + 0xe20], 0
jle 0x4661d9
cmp dword [edi + 0xe1c], 0
je 0x46617d
mov eax, 1
mov byte [esp + 0x17], 0
mov dword [esp + 0x10], 0
cmp word [ebx + 0x78], ax
jne 0x4661f5
cmp esi, eax
je 0x466222
mov esi, dword [esp + 0x24]
mov esi, dword [esi + 0x10]
cmp esi, dword [edi + 0x308]
jge 0x466308
mov byte [esp + 0x17], al
call fcn.00526930
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 5
jge 0x466321
cmp word [ebx + 0x78], 1
jne 0x46624d
cmp word [edi + 0x78], 1
jne 0x46624d
lea eax, [esp + 0x17]
push eax
movzx eax, byte [ebp + 0x14]
push 0
push eax
push 0
push edi
push ebx
call fcn.0040aba0
test al, al
je 0x466191
mov esi, dword [edi + 0x7a0]
sub esi, dword [edi + 0x824]
add esi, dword [edi + 0x300]
cmp word [ebx + 0x78], 1
jne 0x466273
cmp word [edi + 0x78], 1
jne 0x466273
add esi, dword [edi + 0x920]
cmp dword [edi + 0xdec], 0
jle 0x466282
add esi, dword [edi + 0xde8]
mov eax, dword [edi + 0x840]
test eax, eax
jle 0x4662a4
mov ecx, esi
imul ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add esi, eax
mov eax, dword [edi + 0x870]
test eax, eax
jle 0x4662c6
mov ecx, esi
imul ecx, eax
mov eax, 0xae147ae1
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add esi, eax
imul ecx, esi, 0x32
mov eax, 0x51eb851f
push 0x21b
push ebx
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x20], eax
call fcn.004b6100
mov esi, eax
call fcn.00526930
cdq
mov ecx, 0x64
idiv ecx
cmp edx, esi
jge 0x466352
mov dword [esp + 0x10], 1
xor eax, eax
jmp 0x466356
test esi, esi
cmove esi, eax
call fcn.00526930
cdq
idiv esi
cmp edx, dword [edi + 0x308]
jge 0x466222
push 0
push 0
mov byte [esp + 0x18], 0
mov edx, dword [edi]
mov ecx, dword [ebx]
push 0
push dword [esp + 0x1c]
call fcn.004e94a0
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [esp + 0x18]
xor ecx, ecx
test eax, eax
cmovs eax, ecx
mov ecx, dword [esp + 0x24]
push eax
lea eax, [esp + 0x14]
push eax
sub esp, 8
push ebx
call fcn.00466ed0
cmp byte [esp + 0x17], 0
mov esi, eax
je 0x466393
mov ecx, esi
mov eax, 0x51eb851f
shl ecx, 4
sub ecx, esi
add ecx, ecx
imul ecx
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp byte [ebp + 0x1c], 0
je 0x4663b4
mov ecx, esi
mov eax, 0x51eb851f
shl ecx, 4
sub ecx, esi
shl ecx, 2
imul ecx
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
mov ecx, dword [edi + 0x934]
mov eax, 0x51eb851f
imul ecx, esi
imul ecx
mov ecx, dword [edi + 0x938]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, 0x51eb851f
imul ecx, esi
imul ecx
mov ecx, dword [edi + 0x93c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, 0x51eb851f
imul ecx, esi
imul ecx
mov ecx, dword [edi + 0x940]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, 0x51eb851f
imul ecx, esi
imul ecx
mov ecx, dword [edi + 0x944]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, 0x51eb851f
imul ecx, esi
imul ecx
mov ecx, dword [edi + 0x948]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, 0x51eb851f
imul ecx, esi
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, dword [edi + 0x7cc]
mov dword [esp + 0x20], esi
test eax, eax
jle 0x466486
mov ecx, esi
imul ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov dword [esp + 0x20], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
imul eax, dword [0xbdbf48], 0x3e8
sub ecx, dword [edi + 0x930]
cmp ecx, eax
jae 0x4664c2
mov ecx, dword [edi + 0x92c]
mov eax, 0x51eb851f
imul ecx, esi
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov dword [esp + 0x20], esi
lea eax, [esp + 0x20]
push eax
push edi
push 0
call fcn.00409090
lea eax, [esp + 0x20]
push eax
push edi
push 0
call fcn.00409600
movsx ecx, word [ebx + 0xd0]
mov eax, 0x66666667
add ecx, dword [ebx + 0x608]
imul ecx
mov ebx, dword [esp + 0x20]
mov ecx, 1
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
cmovl eax, ecx
cmp ebx, eax
cmovl ebx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
mov esi, dword [eax + 0x390]
lea ecx, [ebx + ebx]
lea eax, [ebx + ebx]
add esi, 0x10c
mov dword [esp + 0x18], eax
mov eax, 0x51eb851f
imul ecx
mov dword [esp + 0x24], esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add ax, word [esi + 0x28]
movzx esi, ax
mov eax, dword [esp + 0x24]
mov word [eax + 0x28], si
mov eax, 0x51eb851f
imul ecx, dword [0xbdaa3c], 0x320
imul ecx
mov eax, dword [esp + 0x1c]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, dword [eax + 0x978]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp esi, ecx
jl 0x46663c
mov eax, dword [esp + 0x24]
movss xmm0, dword [0x56a724]
movss xmm1, dword [eax + 0x20]
subss xmm1, xmm0
comiss xmm0, xmm1
jbe 0x4665ac
xorps xmm1, xmm1
xor ecx, ecx
movss dword [eax + 0x20], xmm1
mov word [eax + 0x28], cx
mov ecx, eax
call fcn.00496960
mov esi, dword [esp + 0x1c]
test al, al
je 0x4665d2
push dword [esi]
mov ecx, 0x6509a4
call fcn.004d9990
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x28]
mov ecx, dword [esi]
push 6
mov dword [esp + 0x2c], 0x12a06c1
cvttss2si eax, dword [eax + 0x20]
mov byte [esp + 0x31], 0
mov byte [esp + 0x30], al
call fcn.00526480
mov ecx, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x28], 0xa910c1
mov word [esp + 0x2c], pe_nt_image_headers32
mov al, byte [ecx + 0xc4]
mov byte [esp + 0x2e], al
mov eax, dword [ecx + 0xc8]
mov dword [esp + 0x30], eax
cvttss2si eax, dword [ecx + 0x20]
push 0x10
mov byte [esp + 0x38], al
lea eax, [esp + 0x2c]
push eax
push dword [esi]
call fcn.005192f0
jmp 0x466640
mov esi, dword [esp + 0x1c]
push ebx
push edi
call fcn.00409950
push 0x21a
push esi
call fcn.004b6100
mov esi, eax
call fcn.00526930
cdq
mov ecx, 0x64
idiv ecx
mov eax, dword [esp + 0x10]
cmp edx, esi
jge 0x466674
mov ebx, dword [esp + 0x18]
or eax, 0x40
mov dword [esp + 0x20], ebx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
cmp word [esi + 0x78], 1
jne 0x466821
cmp word [edi + 0x78], 1
movzx eax, word [esi + 0xcc]
mov dword [esp + 0x18], eax
mov eax, 0x51eb851f
jne 0x4667ec
imul ebx, dword [0xbdb474]
imul ebx
mov ebx, dword [esp + 0x18]
mov eax, 0x51eb851f
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, dword [ebx*4 + 0xbdb484]
imul ecx
movzx ecx, word [edi + 0xcc]
lea eax, [ebx*8]
sub eax, ebx
sar edx, 5
mov esi, edx
add ecx, eax
shr esi, 0x1f
mov eax, 0x51eb851f
add esi, edx
imul esi, dword [ecx*4 + 0xbdb4bc]
imul esi
mov esi, dword [esp + 0x1c]
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp byte [esp + 0xf], 0
je 0x466714
imul ebx, dword [0xbdb454]
jmp 0x4667d9
push edi
push esi
call fcn.00485270
test al, al
je 0x46672b
imul ebx, dword [0xbdb458]
jmp 0x4667d9
mov al, byte [esi + 0x149]
cmp al, 0x28
jne 0x466749
cmp byte [edi + 0x149], al
jne 0x466773
imul ebx, dword [0xbdb45c]
jmp 0x4667d9
cmp al, 0x12
jb 0x466773
cmp al, 0x17
jbe 0x466755
cmp al, 0x35
jne 0x466773
mov cl, byte [edi + 0x149]
cmp cl, 0x12
jb 0x466773
cmp cl, 0x17
jbe 0x46676a
cmp cl, 0x35
jne 0x466773
imul ebx, dword [0xbdb460]
jmp 0x4667d9
cmp al, 0x2d
jb 0x466794
cmp al, 0x32
ja 0x466794
mov cl, byte [edi + 0x149]
cmp cl, 0x2d
jb 0x466794
cmp cl, 0x32
ja 0x466794
imul ebx, dword [0xbdb464]
jmp 0x4667d9
cmp dword [0x5d8fb0], 7
jne 0x466825
cmp al, 0x1e
jne 0x466825
cmp byte [edi + 0x149], al
jne 0x466825
mov al, byte [esi + 0xdca]
test al, al
je 0x4667d2
mov cl, byte [edi + 0xdca]
test cl, cl
je 0x4667d2
cmp al, cl
jne 0x4667d2
imul ebx, dword [0xbdb46c]
jmp 0x4667d9
imul ebx, dword [0xbdb468]
mov eax, 0x51eb851f
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jmp 0x466825
imul ebx, dword [0xbdb478]
imul ebx
movzx eax, word [esi + 0xcc]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, dword [eax*4 + 0xbdb4a0]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jmp 0x466825
mov ebx, dword [esp + 0x20]
cmp word [esi + 0x78], 1
jne 0x4668c0
cmp word [edi + 0x78], 2
jne 0x4668c0
movzx eax, word [edi + 0xcc]
mov ecx, 0x115
cmp ax, cx
je 0x466856
mov ecx, 0x11b
cmp ax, cx
jne 0x4668c0
mov eax, dword [esi + 0x624]
xor ecx, ecx
add eax, 4
mov dl, byte [eax]
cmp dl, 0xff
je 0x46686d
cmp dl, 0xa
je 0x466878
inc ecx
add eax, 0x1c
cmp ecx, 0x20
jl 0x466861
jmp 0x466891
lea ecx, [ebx + ebx*4]
mov eax, 0x51eb851f
shl ecx, 2
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add ebx, eax
imul ebx, dword [0xbdb470]
mov eax, 0x51eb851f
xor ecx, ecx
imul ebx
mov eax, dword [esi + 0xdd8]
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp eax, 0x64
lea edx, [eax + ebx]
cmovle ecx, edx
mov dword [esi + 0xdd8], ecx
xor eax, eax
test ebx, ebx
mov dword [esp + 0x1c], eax
cmovs ebx, eax
cmp word [esi + 0x78], 1
mov dword [esp + 0x20], ebx
jne 0x466930
cmp word [edi + 0x78], 1
jne 0x466930
push ebx
push edi
push esi
call fcn.0040cac0
movss xmm0, dword [edi + 0xfc]
mov edx, eax
mov eax, ebx
mov dword [esp + 0x1c], edx
sub eax, edx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x466908
xorps xmm0, xmm0
jmp 0x46690c
subss xmm0, xmm1
movss dword [edi + 0xfc], xmm0
mov ecx, dword [edi + 0x154]
mov eax, ecx
sub eax, edx
cmp ecx, edx
mov ecx, 0
cmovl eax, ecx
mov dword [edi + 0x154], eax
jmp 0x46695f
movss xmm1, dword [edi + 0xfc]
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x46694c
mov dword [edi + 0xfc], eax
jmp 0x46695f
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movss dword [edi + 0xfc], xmm1
cmp word [edi + 0x78], 2
jne 0x4669ca
mov ax, word [esi]
xor edx, edx
push 0
mov word [edi + 0x2b6], ax
mov ecx, edi
push 0x64
push dword [esi]
call fcn.00523ad0
add esp, 0xc
cmp dword [edi + 0xe40], 0
je 0x4669ca
mov eax, 0x51eb851f
lea ecx, [edi + 0xe60]
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esi]
mov dword [esp + 0x18], eax
xor eax, eax
nop word [eax + eax]
cmp dword [ecx], edx
je 0x4669bf
inc eax
add ecx, 8
cmp eax, 0x14
jl 0x4669b0
jmp 0x4669ca
mov ecx, dword [esp + 0x18]
add dword [edi + eax*8 + 0xe64], ecx
test ebx, ebx
jle 0x466b77
cmp word [esi + 0x78], 1
jne 0x466b70
cmp word [edi + 0x78], 1
jne 0x466b70
mov edx, dword [edi]
cmp dword [esi], edx
je 0x466b70
mov al, 1
movzx ebx, al
xor eax, eax
cmp word [esp + 0x24], 4
cmove ebx, eax
mov eax, dword [esi + 0x3f4]
mov dword [esp + 0x10], ebx
test eax, eax
js 0x466a3b
cmp eax, 0x1194
jge 0x466a3b
mov ecx, dword [edi + 0x3f4]
test ecx, ecx
js 0x466a3b
cmp ecx, 0x1194
jge 0x466a3b
cmp eax, edx
jne 0x466a3b
xor edx, edx
movzx ebx, bl
cmp ecx, dword [esi]
cmove ebx, edx
mov dword [esp + 0x10], ebx
mov eax, dword [esi + 0x290]
test eax, eax
je 0x466a72
mov edx, dword [edi + 0x290]
test edx, edx
je 0x466a72
mov ecx, dword [eax + 0x71c]
test ecx, ecx
jne 0x466a5b
mov ecx, dword [eax]
push dword [edx]
push ecx
call fcn.0051bf90
xor edx, edx
movzx ecx, bl
cmp eax, 2
cmove ecx, edx
mov byte [esp + 0x10], cl
push edi
push esi
call fcn.00485270
mov edx, edi
mov ecx, esi
mov bl, al
call fcn.005253a0
mov ecx, dword [esp + 0x10]
xor edx, edx
test eax, eax
movzx ecx, cl
cmove edx, ecx
xor ecx, ecx
test bl, bl
movzx eax, dl
cmove ecx, eax
mov al, byte [esi + 0x149]
mov bl, cl
mov dl, bl
cmp al, 0x1e
jne 0x466ac0
cmp dword [0x5d8fb0], 7
jne 0x466ade
cmp byte [esi + 0xdca], 0
je 0x466ade
xor bl, bl
jmp 0x466ade
cmp al, 0x28
jne 0x466ad0
cmp byte [edi + 0x149], al
jne 0x466ade
xor bl, bl
jmp 0x466ade
mov bl, dl
cmp al, 0x12
jae 0x466ada
mov cl, al
jmp 0x466b18
cmp al, 0x17
jbe 0x466ae2
cmp al, 0x35
jne 0x466af6
mov al, byte [edi + 0x149]
cmp al, 0x12
jb 0x466af6
cmp al, 0x17
jbe 0x466af4
cmp al, 0x35
jne 0x466af6
xor bl, bl
mov cl, byte [esi + 0x149]
cmp cl, 0x2d
jb 0x466b18
cmp cl, 0x32
ja 0x466b18
mov al, byte [edi + 0x149]
cmp al, 0x2d
jb 0x466b18
mov dl, 0x32
cmp dl, al
sbb al, al
and bl, al
movzx eax, cl
mov ecx, 0x9f436c
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.00405650
mov eax, dword [esp + 0x30]
mov ecx, dword [0x9f436c]
cmp byte [eax + 0xd], 0
jne 0x466b4c
mov edx, dword [esp + 0x10]
cmp edx, dword [eax + 0x10]
jge 0x466b4e
mov eax, ecx
cmp eax, ecx
je 0x466b5f
mov eax, dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x466b5f
cmp eax, 2
je 0x466b6c
test bl, bl
je 0x466b6c
mov edx, dword [edi]
mov ecx, esi
call fcn.00525060
mov ebx, dword [esp + 0x20]
push edi
push esi
call fcn.00409fc0
mov byte [esi + 0x204], 0
test ebx, ebx
jle 0x466e4e
push 0x48
push edi
call fcn.004774b0
xor ecx, ecx
cmp word [esp + 0x24], 4
je 0x466e2b
cmp word [edi + 0x78], 1
jne 0x466e2b
call fcn.00526930
cdq
mov ecx, 0x64
idiv ecx
cmp edx, dword [edi + 0x97c]
jge 0x466bbf
push ebx
jmp 0x466be4
mov ecx, dword [edi + 0x7d0]
add ecx, dword [edi + 0x94c]
test ecx, ecx
jle 0x466bf7
imul ecx, ebx
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push 0xa
push dword [esi]
mov edx, 0xa
mov ecx, edi
call fcn.00523ad0
add esp, 0xc
call fcn.00526930
cdq
mov ecx, 0x64
idiv ecx
cmp edx, dword [edi + 0x980]
jge 0x466ca0
movd xmm0, dword [edi + 0x14c]
mov ecx, dword [edi + 0x154]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x28], 0xff2614c1
addss xmm0, dword [edi + 0x100]
cvttss2si edx, xmm0
movss dword [edi + 0xfc], xmm0
cmp edx, 0xfde8
jle 0x466c51
mov byte [esp + 0x2c], 0xfd
mov eax, 0xfde8
jmp 0x466c5e
movzx eax, dx
shr eax, 8
mov byte [esp + 0x2c], al
movzx eax, dx
mov byte [esp + 0x2d], al
mov byte [esp + 0x2e], 0
cmp ecx, 0xfde8
jle 0x466c78
mov byte [esp + 0x2f], 0xfd
mov al, 0xe8
jmp 0x466c84
movzx eax, cx
shr eax, 8
mov byte [esp + 0x2f], al
mov al, cl
mov dword [esp + 0x34], edx
lea edx, [esp + 0x28]
mov dword [esp + 0x38], ecx
mov ecx, dword [edi]
push 0x14
mov byte [esp + 0x34], al
call fcn.00526480
add esp, 4
call fcn.00526930
cdq
mov ecx, 0x64
idiv ecx
cmp edx, dword [edi + 0x988]
jge 0x466d3e
cvttss2si edx, dword [edi + 0xfc]
mov ecx, dword [edi + 0x15c]
add ecx, dword [edi + 0x158]
mov dword [edi + 0x154], ecx
mov dword [esp + 0x28], 0xff2614c1
cmp edx, 0xfde8
jle 0x466cef
mov byte [esp + 0x2c], 0xfd
mov eax, 0xfde8
jmp 0x466cfc
movzx eax, dx
shr eax, 8
mov byte [esp + 0x2c], al
movzx eax, dx
mov byte [esp + 0x2d], al
mov byte [esp + 0x2e], 0
cmp ecx, 0xfde8
jle 0x466d16
mov byte [esp + 0x2f], 0xfd
mov al, 0xe8
jmp 0x466d22
movzx eax, cx
shr eax, 8
mov byte [esp + 0x2f], al
mov al, cl
mov dword [esp + 0x34], edx
lea edx, [esp + 0x28]
mov dword [esp + 0x38], ecx
mov ecx, dword [edi]
push 0x14
mov byte [esp + 0x34], al
call fcn.00526480
add esp, 4
call fcn.00526930
cdq
mov ecx, 0x64
idiv ecx
cmp edx, dword [edi + 0x984]
jge 0x466d83
movd xmm0, dword [edi + 0x150]
push dword [edi + 0x128]
mov ecx, dword [edi]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [edi + 0x10c]
cvttss2si eax, xmm0
movss dword [edi + 0x108], xmm0
push eax
call fcn.004e9750
add esp, 8
call fcn.00526930
cdq
mov ecx, 0x64
idiv ecx
cmp edx, dword [edi + 0x98c]
jge 0x466dbe
mov eax, dword [edi + 0x12c]
add eax, dword [edi + 0x130]
mov ecx, dword [edi]
push eax
mov dword [edi + 0x128], eax
cvttss2si eax, dword [edi + 0x108]
push eax
call fcn.004e9750
add esp, 8
mov eax, dword [edi + 0x390]
movzx eax, word [eax + 0x864]
mov edx, eax
test ax, ax
js 0x466e06
mov eax, 0x2000
cmp dx, ax
jge 0x466e06
mov eax, 0x1a02
xor ecx, ecx
cmp dx, ax
je 0x466e2b
mov eax, 0x1a03
cmp dx, ax
je 0x466e2b
mov eax, 0x1a04
cmp dx, ax
je 0x466e2b
mov eax, 0x1a25
cmp dx, ax
je 0x466e2b
call fcn.00526930
cdq
mov ecx, 0x64
idiv ecx
movzx eax, word [edi + 0xcc]
xor ecx, ecx
cmp edx, dword [eax*4 + 0xbdb580]
mov eax, 1
cmovl ecx, eax
mov edx, dword [esp + 0x1c]
sub ebx, edx
mov eax, dword [esp + 0x24]
push edx
push 0
movzx eax, ax
push eax
push ecx
push 0
push ebx
push edi
push esi
mov ecx, 0x6509a4
call fcn.004dd760
jmp 0x466e68
mov eax, dword [esp + 0x24]
mov edx, dword [edi]
mov ecx, dword [esi]
push 0
movzx eax, ax
push eax
push 0
push 0
call fcn.004e94a0
add esp, 0x10
cmp word [esi + 0x78], 1
jne 0x466ea2
xorps xmm0, xmm0
comiss xmm0, dword [esi + 0xfc]
jb 0x466ea2
cmp dword [esi + 0x5dc], 0
jg 0x466ea2
mov dword [esi + 0x250], edi
cmp word [edi + 0x78], 1
mov dword [esi + 0x5dc], 3
sete al
mov byte [esi + 0x254], al
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [esp + 0x3c]
xor al, al
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x18