Function at 0x4057e0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x65ae8b
mov eax, dword fs:[0]
push eax
sub esp, 0xa0
mov eax, dword [0x6af168]
xor eax, esp
mov dword [esp + 0x98], eax
push ebx
push esi
push edi
mov eax, dword [0x6af168]
xor eax, esp
push eax
lea eax, [esp + 0xb0]
mov dword fs:[0], eax
mov ebx, edx
mov esi, ecx
lea eax, [esp + 0x2c]
push eax
mov ecx, ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x28], ebx
mov byte [esp + 0x27], 1
mov dword [esp + 0x30], 0x52
call fcn.0060bf70
lea ecx, [esp + 0x23]
push ecx
mov ecx, ebx
call fcn.0060c0c0
mov eax, dword [esp + 0x2c]
cmp eax, 0x15
mov dword [ebx + 0x48], eax
jl 0x4059da
mov edx, dword [esi + 0x10c]
mov eax, dword [esi + 0x720]
mov dword [esp + 0x44], edx
mov ecx, dword [eax + 0x2dc]
mov dword [esp + 0x40], ecx
mov edx, dword [eax + 0x200]
mov dword [esp + 0x30], edx
mov eax, dword [eax + 0x208]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x6f4]
test eax, eax
je 0x4058a2
mov ecx, dword [eax + 8]
mov dword [esp + 0x1c], ecx
jmp 0x4058aa
mov dword [esp + 0x1c], 0
push 1
lea edi, [esi + 0x8f8]
lea edx, [esp + 0x68]
push edi
push edx
call fcn.004e7710
add esp, 0xc
lea eax, [esp + 0x44]
push eax
mov ecx, ebx
mov dword [esp + 0xbc], 0
call fcn.0060bf70
lea ecx, [esp + 0x40]
push ecx
mov ecx, ebx
call fcn.0060bf70
lea edx, [esp + 0x30]
push edx
mov ecx, ebx
call fcn.0060bf70
lea eax, [esp + 0x28]
push eax
mov ecx, ebx
call fcn.0060bf70
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebx
call fcn.0060bf70
lea edx, [esp + 0x64]
push edx
mov ecx, ebx
call fcn.0060c1c0
cmp dword [ebx + 4], 0
je 0x4059b7
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x4c]
push 0x66f6c0
push ecx
call fcn.0044cec0
add esp, 0xc
push 0x66f6b8
push eax
lea edx, [esp + 0x88]
push edx
mov byte [esp + 0xc4], 1
call fcn.0044cf70
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
mov byte [esp + 0xc4], 2
call fcn.00401d10
mov edi, 0x10
cmp dword [esp + 0x98], edi
jb 0x405984
mov eax, dword [esp + 0x84]
push eax
call fcn.0062493b
add esp, 4
cmp dword [esp + 0x60], edi
mov dword [esp + 0x98], 0xf
mov dword [esp + 0x94], 0
mov byte [esp + 0x84], 0
jb 0x4059bc
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.0062493b
add esp, 4
jmp 0x4059bc
mov edi, 0x10
mov dword [esp + 0xb8], 0xffffffff
cmp dword [esp + 0x7c], edi
jb 0x4059da
mov edx, dword [esp + 0x68]
push edx
call fcn.0062493b
add esp, 4
cmp dword [esp + 0x2c], 0x34
jl 0x405b0d
mov eax, dword [esi + 0x720]
mov cl, byte [eax + 0x1a8]
lea edx, [esp + 0x11]
mov byte [esp + 0x11], cl
push edx
mov ecx, ebx
call fcn.0060c100
mov ecx, ebx
call fcn.0060c0a0
cmp byte [esp + 0x11], 0
je 0x405b0d
mov eax, dword [esi + 0x720]
push 0xffffffffffffffff
xor edi, edi
add eax, 0x218
push edi
push eax
lea ecx, [esp + 0x8c]
mov dword [esp + 0xa4], 0xf
mov dword [esp + 0xa0], edi
mov byte [esp + 0x90], 0
call fcn.00401d10
mov dword [esp + 0xb8], 3
mov eax, dword [esi + 0x720]
push 0xffffffffffffffff
add eax, 0x234
push edi
push eax
lea ecx, [esp + 0x70]
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x84], edi
mov byte [esp + 0x74], 0
call fcn.00401d10
mov byte [esp + 0xb8], 4
mov eax, dword [esi + 0x720]
mov ecx, dword [eax + 0x204]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
push edx
mov ecx, ebx
call fcn.0060bf70
lea eax, [esp + 0x80]
push eax
mov ecx, ebx
call fcn.0060c1c0
lea ecx, [esp + 0x64]
push ecx
mov ecx, ebx
call fcn.0060c1c0
cmp dword [esp + 0x7c], 0x10
jb 0x405ad7
mov edx, dword [esp + 0x68]
push edx
call fcn.0062493b
add esp, 4
mov dword [esp + 0xb8], 0xffffffff
cmp dword [esp + 0x98], 0x10
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], edi
mov byte [esp + 0x68], 0
jb 0x405b0d
mov eax, dword [esp + 0x84]
push eax
call fcn.0062493b
add esp, 4
mov byte [esp + 0x28], 0
mov ecx, dword [esp + 0x28]
lea edi, [esi + 0x760]
push ecx
mov edx, ebx
mov dword [0x6b9ccc], 0
mov dword [esp + 0x34], edi
call fcn.0044d020
add esp, 4
cmp dword [ebx + 0x48], 4
jl 0x405bfa
mov ecx, dword [esi + 0xd4]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push ebx
call eax
lea ecx, [esi + 0xda]
push ecx
mov ecx, ebx
call fcn.0060c0c0
lea edi, [esi + 0xe8]
push edi
mov ecx, ebx
call fcn.0060bf70
lea eax, [esi + 0xec]
push eax
mov ecx, ebx
call fcn.0060bf70
cmp dword [ebx + 0x48], 0xe
jl 0x405bb0
lea edx, [esi + 0xdb]
push edx
mov ecx, ebx
call fcn.0060c0c0
lea eax, [esi + 0xdc]
push eax
mov ecx, ebx
call fcn.0060c0c0
mov ecx, ebx
call fcn.0060c0a0
lea ecx, [esi + 0xe4]
push ecx
mov ecx, ebx
call fcn.0060bf70
jmp 0x405bd8
mov byte [esi + 0xdb], 0
mov byte [esi + 0xdc], 0
mov dword [esi + 0xe4], 0
mov dword [edi], 0
mov dword [esi + 0xec], 0xfa
cmp dword [ebx + 0x48], 0x12
jl 0x405bfa
lea edx, [esi + 0xf0]
push edx
mov ecx, ebx
call fcn.0060bf70
lea eax, [esi + 0xf4]
push eax
mov ecx, ebx
call fcn.0060bf70
mov esi, dword [esi + 0x704]
mov eax, ebx
call fcn.004555f0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x710]
mov edi, ebx
call fcn.00461ac0
mov edx, dword [esp + 0x14]
mov edi, dword [edx + 0x714]
mov esi, ebx
call fcn.00465dd0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x720]
push ecx
call fcn.0046b2c0
mov edi, esi
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x724]
mov eax, edi
call fcn.0047aca0
mov eax, dword [esi + 0x718]
call fcn.00467400
mov eax, dword [edi + 4]
test eax, eax
je 0x405d48
mov edi, dword [esi + 0x708]
call fcn.00458a70
mov ebx, dword [esp + 0x30]
lea edx, [esp + 0x34]
push edx
mov ecx, ebx
call fcn.004412a0
mov dword [esp + 0xb8], 5
call fcn.00441430
lea ebx, [esi + 0x76c]
call fcn.00441430
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
mov edi, edi
cmp edi, dword [esp + 0x38]
je 0x405cee
mov ecx, dword [edi + 8]
push ecx
mov ecx, esi
call fcn.0040aef0
cmp edi, dword [esp + 0x38]
jne 0x405cbc
call fcn.0062492b
mov edx, dword [edi + 8]
cmp byte [edx + 0x27], 0
je 0x405cdf
cmp edi, dword [esp + 0x38]
jne 0x405cd0
call fcn.0062492b
mov eax, dword [edi + 8]
mov ecx, dword [eax + 0xb4]
mov dword [esi + 0x740], ecx
cmp edi, dword [esp + 0x38]
jne 0x405cea
call fcn.0062492b
mov edi, dword [edi]
jmp 0x405ca0
mov ecx, dword [esi + 0x704]
call fcn.00457580
mov eax, dword [esi + 0xd4]
xor ebx, ebx
cmp byte [eax + 0x194], bl
je 0x405d0f
push eax
call fcn.00499a50
fldz
mov dword [esi + 0x124], ebx
mov byte [esi + 0x6e5], bl
fstp dword [esi + 0x114]
lea ebx, [esp + 0x34]
mov dword [esp + 0xb8], 0xffffffff
call fcn.00441430
mov edx, dword [esp + 0x38]
push edx
call fcn.0062493b
mov edi, dword [esp + 0x28]
add esp, 4
cmp dword [edi + 0x48], 5
jl 0x405d5c
lea eax, [esi + 0x794]
push eax
mov ecx, edi
call fcn.0060bf70
mov eax, dword [edi + 0x48]
cmp eax, 8
jl 0x405d80
lea ecx, [esi + 0xf8]
push ecx
mov ecx, edi
call fcn.0060bf70
lea edx, [esi + 0xfc]
push edx
mov ecx, edi
call fcn.0060bf70
cmp dword [edi + 0x48], 0x13
jl 0x405e50
lea eax, [esi + 0x108]
push eax
mov ecx, edi
call fcn.0060bf70
lea ecx, [esi + 0x10c]
push ecx
mov ecx, edi
call fcn.0060bf70
lea eax, [esi + 0xb4]
push 4
push eax
mov ecx, edi
call fcn.0060bf50
xor ebx, ebx
cmp dword [edi + 8], ebx
mov dword [esp + 0x1c], ebx
je 0x405dd2
mov eax, dword [esi + 0x6f4]
cmp eax, ebx
je 0x405dd2
mov edx, dword [eax + 8]
mov dword [esp + 0x1c], edx
lea eax, [esp + 0x1c]
push eax
mov ecx, edi
call fcn.0060bf70
cmp dword [edi + 4], ebx
je 0x405e62
mov eax, dword [esp + 0x1c]
cmp eax, ebx
jne 0x405df3
mov dword [esi + 0x6f4], ebx
jmp 0x405e62
mov ecx, dword [esi + 0xb0]
push eax
mov eax, dword [ecx + 0x918]
call fcn.0047fdd0
cmp eax, ebx
mov dword [esi + 0x6f4], eax
jne 0x405e62
mov edx, dword [esp + 0x1c]
push edx
lea eax, [esp + 0x4c]
push str.Trophy_not_found:__d
push eax
call fcn.004e7a20
add esp, 0xc
push eax
lea ecx, [esp + 0x84]
mov dword [esp + 0xbc], 6
call fcn.00404590
push 0x698898
lea ecx, [esp + 0x84]
push ecx
call fcn.0062a249
mov edx, dword [esi + 0xb0]
mov eax, dword [edx + 0x7f4]
mov dword [esi + 0xb4], eax
cmp dword [edi + 0x48], 0x19
jl 0x405ead
lea ecx, [esp + 0x11]
push ecx
mov ecx, edi
mov byte [esp + 0x15], 0
mov byte [esp + 0x1f], 0
call fcn.0060c100
lea edx, [esp + 0x1b]
push edx
mov ecx, edi
call fcn.0060c100
lea eax, [esi + 0xe0]
push eax
mov ecx, edi
call fcn.0060c100
lea ecx, [esi + 0xe1]
push ecx
mov ecx, edi
call fcn.0060c100
mov ecx, edi
call fcn.0060c0a0
cmp dword [edi + 0x48], 0x2d
mov byte [esp + 0x12], 0
jl 0x405f2d
fldz
lea ebx, [esi + 0x114]
fcomp dword [ebx]
mov byte [esp + 0x12], 1
fnstsw ax
test ah, 0x44
jp 0x405ed3
mov byte [esp + 0x12], 0
lea edx, [esi + 0x6e5]
push edx
mov ecx, edi
call fcn.0060c100
lea eax, [esp + 0x12]
push eax
mov ecx, edi
call fcn.0060c100
mov ecx, edi
call fcn.0060c0a0
cmp byte [esp + 0x12], 0
je 0x405f2d
push ebx
mov ecx, edi
call fcn.0060c180
lea ecx, [esi + 0x118]
push ecx
mov ecx, edi
call fcn.0060c180
lea edx, [esi + 0x11c]
push edx
mov ecx, edi
call fcn.0060c180
lea eax, [esi + 0x124]
push eax
mov ecx, edi
call fcn.0060bf70
cmp dword [edi + 0x48], 0x15
jl 0x405fd4
mov ecx, dword [esi + 0x720]
cmp dword [ecx + 4], 5
jne 0x405fd4
mov edx, dword [esi + 0x72c]
push 4
add edx, 0x180
push edx
mov ecx, edi
call fcn.0060bf50
cmp dword [edi + 4], 0
je 0x405f77
mov eax, dword [esi + 0x72c]
mov ecx, dword [eax + 0x180]
push ecx
mov ecx, esi
call fcn.00406e10
cmp dword [esi + 0xb4], 6
je 0x405fd4
cmp dword [edi + 0x48], 0x35
mov byte [esp + 0x11], 1
jl 0x405fba
mov eax, dword [esi + 0x72c]
cmp dword [eax + 0x10], 0
je 0x405fa2
cmp byte [eax + 0x54], 0
mov byte [esp + 0x11], 1
jne 0x405fa7
mov byte [esp + 0x11], 0
lea edx, [esp + 0x11]
push edx
mov ecx, edi
call fcn.0060c100
mov ecx, edi
call fcn.0060c0a0
cmp dword [edi + 4], 0
je 0x405fd4
cmp byte [esp + 0x11], 0
je 0x405fd4
call fcn.00406f50
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
cmp dword [edi + 0x48], 0x3d
jl 0x406058
mov eax, dword [esi + 0x730]
cmp dword [eax + 0x10], 0
lea ecx, [esp + 0x13]
setne bl
push ecx
mov ecx, edi
mov byte [esp + 0x17], bl
call fcn.0060c100
mov ecx, edi
call fcn.0060c0a0
mov al, byte [esp + 0x13]
test al, al
je 0x406023
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x730]
mov esi, edi
call fcn.004cba80
mov al, byte [esp + 0x13]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
cmp bl, al
je 0x406058
test al, al
je 0x40604b
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx]
mov edx, dword [esi + 0x730]
mov eax, dword [eax + 0xc]
push edx
call eax
mov ecx, dword [esi + 0x724]
mov al, 1
call fcn.0047ad10
jmp 0x406058
call fcn.00407230
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
cmp dword [edi + 4], 0
je 0x40609a
push esi
mov dword [esi + 0x128], 0
call fcn.004105f0
push esi
call fcn.004090c0
mov ecx, dword [esi + 0x728]
cmp byte [ecx + 0x54], 0
je 0x406087
mov edi, esi
call fcn.00406790
mov edx, dword [esi + 0x720]
cmp dword [edx + 4], 8
je 0x40609a
mov edi, esi
call fcn.0040eb70
mov esi, dword [esi + 0xb0]
call fcn.00541340
mov ecx, dword [esp + 0xb0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.00624940
mov esp, ebp
pop ebp
ret