Function at 0x10038280
Capabilities:
Query environment variable
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1004c8a8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x90
push ebx
push esi
push edi
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
call fcn.1003f640
mov dword [ebp - 0x34], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
call fcn.1003f640
mov esi, eax
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 1
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax]
mov dword [ebp - 0x2c], ebx
cmp ebx, dword [eax + 4]
je 0x10038671
nop
mov edi, dword [ebx]
cmp dword [edi + 0x74], 0
je 0x10038309
mov eax, dword [edi + 0x70]
mov edi, dword [edi + 0x80]
mov edi, dword [edi + eax*4]
mov eax, dword [ebp + 0xc]
jmp 0x1003830b
xor edi, edi
test edi, edi
je 0x1003865f
mov eax, dword [ebp + 8]
lea ecx, [eax + 0x360]
mov dword [ebp - 0x54], ecx
lea ecx, [eax + 0xcc]
mov dword [ebp - 0x44], ecx
lea ecx, [eax + 0x6c]
mov dword [ebp - 0x48], ecx
lea ecx, [eax + 0x7c]
add eax, 0x390
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x28], eax
nop dword [eax]
mov eax, dword [edi + 0xc]
lea ebx, [edi + 0xc]
movss xmm1, dword [0x10052f64]
mov ecx, eax
mov edx, eax
movss dword [ebp - 0x14], xmm1
mov esi, eax
movzx eax, byte [eax + 0x10]
push eax
push dword [ebp - 0x54]
lea eax, [ecx + 0x78]
push eax
push dword [ebp - 0x44]
lea eax, [edx + 0x138]
push eax
push dword [ebp - 0x48]
lea eax, [esi + 0x9c]
push eax
push dword [ebp - 0x1c]
mov eax, dword [ebx]
add eax, 0xb8
push eax
call fcn.10040480
test al, al
je 0x100383de
mov eax, dword [ebx]
xorps xmm0, xmm0
comiss xmm0, dword [eax + 8]
jbe 0x100383a2
movss xmm1, dword [0x10052f88]
jmp 0x100383d9
mov ecx, dword [ebp + 8]
sub ecx, 0xffffff80
cmp dword [eax + 0x58], 0
je 0x100383ca
mov edx, dword [eax + 0x58]
add edx, 8
call fcn.10026e70
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
addss xmm1, dword [0x10052efc]
jmp 0x100383d9
lea edx, [eax + 0x24]
call fcn.10026e70
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss dword [ebp - 0x14], xmm1
push ecx
mov ecx, dword [ebp - 0x28]
lea eax, [edi + 8]
push eax
push dword [eax]
call fcn.1000ce40
mov ecx, dword [ebp + 8]
mov esi, eax
mov eax, dword [ebx]
movss xmm0, dword [eax + 8]
mulss xmm0, dword [ecx + 0x8c]
comiss xmm0, xmm1
jbe 0x10038519
test esi, esi
sete al
test al, al
mov eax, dword [ebx]
je 0x10038477
mov eax, dword [eax + 0x3c]
lea edx, [ebp - 0x50]
push ebx
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x50], eax
movss dword [ebp - 0x4c], xmm1
call fcn.10040650
add esp, 4
push eax
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 2
call fcn.10041e40
push eax
add eax, 0x10
push eax
push ecx
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x34]
call fcn.10042000
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0x6c]
test esi, esi
je 0x1003864d
add dword [esi + 0x40], 0xffffffff
jne 0x1003864d
mov ecx, esi
call fcn.1000c960
mov byte [ebp - 4], 3
jmp 0x10038504
cmp dword [eax + 4], 0
je 0x1003849c
mov ecx, dword [ecx + 0xc0]
lea eax, [edi + 8]
push eax
push eax
lea eax, [ebp - 0x84]
add ecx, 0x6c
push eax
call fcn.10040be0
movss xmm1, dword [ebp - 0x14]
mov eax, dword [ebx]
lea edx, [ebp - 0x5c]
push ebx
lea ecx, [ebp - 0x98]
movss dword [ebp - 0x58], xmm1
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x5c], eax
call fcn.10040650
add esp, 4
push eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 4
call fcn.10041e40
push eax
add eax, 0x10
push eax
push ecx
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0x24]
call fcn.10042000
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0x90]
test esi, esi
je 0x1003864d
add dword [esi + 0x40], 0xffffffff
jne 0x1003864d
mov ecx, esi
call fcn.1000c960
mov byte [ebp - 4], 5
push dword [esi - 4]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov byte [ebp - 4], 1
jmp 0x1003864d
test esi, esi
setne al
test al, al
je 0x1003864d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [esi + 0xc]
push eax
mov dword [ebp - 0x10], eax
mov ecx, dword [ecx]
push ecx
push str.DestroyPlayerObject__d___d_
mov dword [ebp - 0x18], ecx
call fcn.100034d0
mov eax, dword [0x10059504]
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1003857b
cmp eax, fcn.100041f0
jne 0x10038585
push str.SAMGDK_NATIVE_SEARCH_ALWAYS
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
add esp, 4
test eax, eax
je 0x10038576
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
test eax, eax
jne 0x1003857b
mov eax, dword [ebp - 0x14]
jmp 0x10038585
mov ecx, str.DestroyPlayerObject
call fcn.10004200
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x60], ecx
lea ecx, [ebp - 0x68]
push ecx
push 0x100595e0
mov dword [0x10059504], eax
mov dword [ebp - 0x68], 8
call eax
mov eax, dword [ebx]
add esp, 8
cmp byte [eax + 0x50], 0
je 0x10038642
mov ebx, dword [ebp - 0x40]
lea eax, [ebp - 0x3c]
mov ecx, dword [edi + 8]
add ebx, 0xc4
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x38], ecx
cmp eax, dword [ebx + 4]
jae 0x1003861b
mov eax, dword [ebx]
lea edx, [ebp - 0x3c]
cmp eax, edx
ja 0x1003861b
mov ecx, edx
sub ecx, eax
mov eax, dword [ebx + 4]
sar ecx, 3
mov dword [ebp - 0x10], ecx
cmp eax, dword [ebx + 8]
jne 0x100385fe
push ecx
mov ecx, ebx
call fcn.1003dce0
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
mov dword [ebp - 0x10], eax
test edx, edx
je 0x1003863e
mov eax, dword [eax + ecx*8]
mov dword [edx], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov dword [edx + 4], eax
jmp 0x1003863e
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 8]
jne 0x1003862e
push ecx
mov ecx, ebx
call fcn.1003dce0
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebx + 4]
test eax, eax
je 0x1003863e
mov dword [eax], 0
mov dword [eax + 4], ecx
add dword [ebx + 4], 8
push dword [esi]
mov ecx, dword [ebp - 0x28]
push esi
call fcn.1002cff0
mov eax, dword [edi]
mov edi, eax
test eax, eax
jne 0x10038340
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp + 0xc]
add ebx, 4
mov dword [ebp - 0x2c], ebx
cmp ebx, dword [eax + 4]
jne 0x100382f0
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x34]
mov edi, dword [eax]
mov dword [ebp - 0x14], edi
cmp edi, eax
je 0x10039179
mov ebx, dword [ebp + 8]
lea ecx, [ebx + 0x390]
mov dword [ebp - 0x2c], ecx
nop dword [eax]
lea eax, [edi + 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [eax]
add eax, 0x1c
push ecx
push eax
push dword [eax]
call fcn.1000ce40
test eax, eax
setne al
test al, al
jne 0x1003910d
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x1c], 0
cmp dword [ecx + 0x58], 0
je 0x100386eb
mov eax, dword [ecx + 0x58]
cmp dword [eax], 0
je 0x100386eb
push ecx
push eax
push dword [eax]
lea ecx, [ebx + 0x390]
call fcn.1000ce40
test eax, eax
sete cl
test cl, cl
jne 0x1003910d
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x398]
cmp eax, dword [ebx + 0x4c]
jne 0x10038b0f
mov ecx, dword [esi]
cmp esi, ecx
je 0x10038b0f
mov dl, byte [esi + 0xd]
mov eax, esi
test dl, dl
je 0x10038712
mov eax, dword [esi + 8]
jmp 0x10038759
cmp byte [ecx + 0xd], 0
jne 0x10038730
mov eax, ecx
mov edx, dword [eax + 8]
cmp byte [edx + 0xd], 0
jne 0x10038756
mov eax, edx
mov edx, dword [eax + 8]
cmp byte [edx + 0xd], 0
je 0x10038723
jmp 0x10038756
mov edx, dword [esi + 4]
cmp byte [edx + 0xd], 0
jne 0x1003874f
nop dword [eax]
cmp eax, dword [edx]
jne 0x1003874f
mov eax, edx
mov edx, dword [edx + 4]
cmp byte [edx + 0xd], 0
je 0x10038740
cmp byte [eax + 0xd], 0
cmove eax, edx
mov dl, byte [esi + 0xd]
mov eax, dword [eax + 0x10]
cmp eax, dword [edi + 0x10]
jl 0x1003881e
mov eax, esi
test dl, dl
je 0x10038770
mov eax, dword [esi + 8]
jmp 0x100387b0
cmp byte [ecx + 0xd], 0
jne 0x1003878e
mov eax, ecx
mov edx, dword [eax + 8]
cmp byte [edx + 0xd], 0
jne 0x100387ad
mov eax, edx
mov edx, dword [eax + 8]
cmp byte [edx + 0xd], 0
je 0x10038781
jmp 0x100387ad
mov edx, dword [esi + 4]
cmp byte [edx + 0xd], 0
jne 0x100387a6
cmp eax, dword [edx]
jne 0x100387a6
mov eax, edx
mov edx, dword [edx + 4]
cmp byte [edx + 0xd], 0
je 0x10038797
cmp byte [eax + 0xd], 0
cmove eax, edx
mov dl, byte [esi + 0xd]
movss xmm0, dword [eax + 0x14]
comiss xmm0, dword [0x10052eec]
jbe 0x10038b0f
mov eax, esi
test dl, dl
je 0x100387cd
mov eax, dword [esi + 8]
jmp 0x1003880f
cmp byte [ecx + 0xd], 0
jne 0x100387ed
mov eax, ecx
mov edx, dword [eax + 8]
cmp byte [edx + 0xd], 0
jne 0x1003880c
nop
mov eax, edx
mov edx, dword [eax + 8]
cmp byte [edx + 0xd], 0
je 0x100387e0
jmp 0x1003880c
mov edx, dword [esi + 4]
cmp byte [edx + 0xd], 0
jne 0x10038805
cmp eax, dword [edx]
jne 0x10038805
mov eax, edx
mov edx, dword [edx + 4]
cmp byte [edx + 0xd], 0
je 0x100387f6
cmp byte [eax + 0xd], 0
cmove eax, edx
mov dl, byte [esi + 0xd]
movss xmm0, dword [eax + 0x14]
comiss xmm0, dword [edi + 0x14]
jbe 0x10038b0f
mov eax, esi
test dl, dl
je 0x10038829
mov ecx, dword [esi + 8]
jmp 0x1003886e
cmp byte [ecx + 0xd], 0
jne 0x1003884d
mov eax, dword [ecx + 8]
cmp byte [eax + 0xd], 0
jne 0x1003886e
nop dword [eax + eax]
mov ecx, eax
mov eax, dword [ecx + 8]
cmp byte [eax + 0xd], 0
je 0x10038840
jmp 0x1003886e
mov edx, dword [esi + 4]
cmp byte [edx + 0xd], 0
jne 0x10038865
cmp eax, dword [edx]
jne 0x10038865
mov eax, edx
mov edx, dword [edx + 4]
cmp byte [edx + 0xd], 0
je 0x10038856
cmp byte [eax + 0xd], 0
mov ecx, eax
cmove ecx, edx
mov eax, dword [ecx + 0x18]
add eax, 0x1c
push ecx
mov ecx, dword [ebp - 0x2c]
push eax
push dword [eax]
call fcn.1000ce40
mov ebx, eax
test ebx, ebx
setne al
test al, al
je 0x100389eb
mov eax, dword [ebp + 8]
mov ecx, dword [ebx + 0xc]
push ecx
mov dword [ebp - 0x18], ecx
mov eax, dword [eax + 0x7c]
push eax
push str.DestroyPlayerObject__d___d_
mov dword [ebp - 0x10], eax
call fcn.100034d0
mov eax, dword [0x10059504]
add esp, 0xc
mov dword [ebp + 0xc], eax
test eax, eax
je 0x100388e5
cmp eax, fcn.100041f0
jne 0x100388ef
push str.SAMGDK_NATIVE_SEARCH_ALWAYS
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
add esp, 4
test eax, eax
je 0x100388e0
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
test eax, eax
jne 0x100388e5
mov eax, dword [ebp + 0xc]
jmp 0x100388ef
mov ecx, str.DestroyPlayerObject
call fcn.10004200
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x60], ecx
lea ecx, [ebp - 0x68]
push ecx
push 0x100595e0
mov dword [0x10059504], eax
mov dword [ebp - 0x68], 8
call eax
mov dl, byte [esi + 0xd]
add esp, 8
mov ecx, esi
test dl, dl
je 0x10038923
mov eax, dword [esi + 8]
jmp 0x1003896b
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x10038941
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x1003896b
mov eax, ecx
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
je 0x10038934
jmp 0x1003896b
mov edx, dword [esi + 4]
cmp byte [edx + 0xd], 0
jne 0x1003895f
nop word [eax + eax]
cmp ecx, dword [edx]
jne 0x1003895f
mov ecx, edx
mov edx, dword [edx + 4]
cmp byte [edx + 0xd], 0
je 0x10038950
cmp byte [ecx + 0xd], 0
mov eax, ecx
cmove eax, edx
mov dl, byte [esi + 0xd]
mov eax, dword [eax + 0x18]
cmp byte [eax + 0x50], 0
je 0x100389e0
mov ecx, esi
test dl, dl
je 0x1003897f
mov eax, dword [esi + 8]
jmp 0x100389be
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x1003899d
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100389be
mov eax, ecx
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
je 0x10038990
jmp 0x100389be
mov edx, dword [esi + 4]
cmp byte [edx + 0xd], 0
jne 0x100389b5
cmp ecx, dword [edx]
jne 0x100389b5
mov ecx, edx
mov edx, dword [edx + 4]
cmp byte [edx + 0xd], 0
je 0x100389a6
cmp byte [ecx + 0xd], 0
mov eax, ecx
cmove eax, edx
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x5c], 0
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x58], eax
lea ecx, [ecx + 0xc4]
lea eax, [ebp - 0x5c]
push eax
call fcn.1003db80
push dword [ebx]
mov ecx, dword [ebp - 0x2c]
push ebx
call fcn.1002cff0
mov bl, byte [esi + 0xd]
mov ecx, esi
test bl, bl
je 0x100389f9
mov eax, dword [esi + 8]
jmp 0x10038a3e
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x10038a1d
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10038a3e
nop word [eax + eax]
mov eax, ecx
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
je 0x10038a10
jmp 0x10038a3e
mov edx, dword [esi + 4]
cmp byte [edx + 0xd], 0
jne 0x10038a35
cmp ecx, dword [edx]
jne 0x10038a35
mov ecx, edx
mov edx, dword [edx + 4]
cmp byte [edx + 0xd], 0
je 0x10038a26
cmp byte [ecx + 0xd], 0
mov eax, ecx
cmove eax, edx
mov eax, dword [eax + 0x18]
cmp dword [eax + 4], 0
je 0x10038ab2
mov ecx, esi
test bl, bl
je 0x10038a52
mov eax, dword [esi + 8]
jmp 0x10038a98
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x10038a70
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10038a98
mov eax, ecx
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
je 0x10038a63
jmp 0x10038a98
mov edx, dword [esi + 4]
cmp byte [edx + 0xd], 0
jne 0x10038a8f
nop dword [eax]
cmp ecx, dword [edx]
jne 0x10038a8f
mov ecx, edx
mov edx, dword [edx + 4]
cmp byte [edx + 0xd], 0
je 0x10038a80
cmp byte [ecx + 0xd], 0
mov eax, ecx
cmove eax, edx
mov ebx, dword [ebp + 8]
mov eax, dword [eax + 0x18]
add eax, 0x1c
push eax
mov ecx, dword [ebx + 0xc0]
add ecx, 0x6c
call fcn.10040820
jmp 0x10038ab5
mov ebx, dword [ebp + 8]
cmp byte [esi + 0xd], 0
je 0x10038ac0
mov eax, dword [esi + 8]
jmp 0x10038aff
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x10038ade
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10038aff
mov eax, ecx
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
je 0x10038ad1
jmp 0x10038aff
mov ecx, dword [esi + 4]
cmp byte [ecx + 0xd], 0
jne 0x10038af6
cmp esi, dword [ecx]
jne 0x10038af6
mov esi, ecx
mov ecx, dword [ecx + 4]
cmp byte [ecx + 0xd], 0
je 0x10038ae7
cmp byte [esi + 0xd], 0
mov eax, esi
cmove eax, ecx
push eax
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x24]
call fcn.1003d2a0
mov esi, dword [ebp - 0x24]
mov eax, dword [ebx + 0x398]
cmp eax, dword [ebx + 0x74]
je 0x10039176
mov edx, dword [edi + 0x18]
sub esp, 0x14
mov ecx, dword [ebx + 0x7c]
movss xmm0, dword [edx + 0xc]
movss xmm1, dword [edx + 0x4c]
movss xmm4, dword [edx + 0x48]
movss xmm5, dword [edx + 0x44]
movss xmm6, dword [edx + 0x2c]
movss xmm3, dword [edx + 0x28]
movss xmm2, dword [edx + 0x24]
mov edx, dword [edx + 0x14]
movss dword [esp + 0x10], xmm0
movss dword [esp + 0xc], xmm1
movss dword [esp + 8], xmm4
movss dword [esp + 4], xmm5
movss dword [esp], xmm6
call fcn.10006f80
add esp, 0x14
mov dword [ebp + 0xc], eax
cmp eax, 0xffff
je 0x1003916d
mov eax, dword [edi + 0x18]
cmp byte [eax + 0x50], 0
je 0x10038c18
mov esi, dword [ebp - 0x40]
mov ecx, dword [eax + 0x1c]
add esi, 0xb8
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x38], ecx
cmp eax, dword [esi + 4]
jae 0x10038bf1
mov eax, dword [esi]
lea edx, [ebp - 0x3c]
cmp eax, edx
ja 0x10038bf1
mov ecx, edx
sub ecx, eax
mov eax, dword [esi + 4]
sar ecx, 3
mov dword [ebp - 0x10], ecx
cmp eax, dword [esi + 8]
jne 0x10038bd4
push ecx
mov ecx, esi
call fcn.1003dce0
mov ecx, dword [ebp - 0x10]
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov dword [ebp - 0x10], eax
test edx, edx
je 0x10038c14
mov eax, dword [eax + ecx*8]
mov dword [edx], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov dword [edx + 4], eax
jmp 0x10038c14
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
jne 0x10038c04
push ecx
mov ecx, esi
call fcn.1003dce0
mov ecx, dword [ebp - 0x10]
mov eax, dword [esi + 4]
test eax, eax
je 0x10038c14
mov dword [eax], 0
mov dword [eax + 4], ecx
add dword [esi + 4], 8
mov eax, dword [ebp - 0x28]
mov edx, dword [eax]
cmp dword [edx + 0x58], 0
je 0x10038ed4
cmp dword [ebp - 0x1c], 0
je 0x10038d55
mov eax, dword [0x10058ed4]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x1005977c]
cmp eax, dword [ecx + 4]
jle 0x10038cb3
push 0x1005977c
call fcn.1004a1e1
add esp, 4
cmp dword [0x1005977c], 0xffffffff
jne 0x10038cb3
mov byte [ebp - 4], 6
mov ecx, dword [0x10059590]
test ecx, ecx
jne 0x10038c75
xor eax, eax
jmp 0x10038c9d
mov eax, dword [0x10059594]
push 0x100038e0
push dword [0x1005959c]
dec eax
push eax
push ecx
push str.AttachPlayerObjectToObject
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_bsearch]
add esp, 0x14
test eax, eax
je 0x10038c9d
mov eax, dword [eax + 4]
push 0x1005977c
mov dword [0x10059778], eax
mov byte [ebp - 4], 1
call fcn.1004a1a2
add esp, 4
cmp dword [0x10059778], 0
je 0x10038f3d
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx + 0x58]
mov ebx, eax
mov edx, eax
mov dword [ebp - 0x10], eax
mov esi, eax
mov dword [ebp - 0x18], eax
mov ecx, eax
movzx eax, byte [eax + 0x30]
push eax
mov eax, ecx
sub esp, 0x30
movss xmm0, dword [eax + 0x2c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x28], xmm0
movss xmm0, dword [eax + 0x28]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
movss xmm0, dword [edx + 0x24]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
movss xmm0, dword [esi + 0x1c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [ebx + 0x18]
mov ebx, dword [ebp + 8]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [ecx + 0x14]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push dword [ebp - 0x1c]
push dword [ebp + 0xc]
push dword [ebx + 0x7c]
push str.dddffffffb
push dword [0x10059778]
call fcn.1001dfb0
add esp, 0x48
jmp 0x10038f3d
mov eax, dword [edx + 0x58]
cmp dword [eax + 4], 0xffff
je 0x10038e65
mov eax, dword [0x10058ed4]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x1005978c]
cmp eax, dword [ecx + 4]
jle 0x10038dbb
push 0x1005978c
call fcn.1004a1e1
add esp, 4
cmp dword [0x1005978c], 0xffffffff
jne 0x10038dbb
mov ecx, str.AttachPlayerObjectToPlayer
mov byte [ebp - 4], 7
call fcn.1001df70
push 0x1005978c
mov dword [0x100597a8], eax
mov byte [ebp - 4], 1
call fcn.1004a1a2
add esp, 4
cmp dword [0x100597a8], 0
je 0x10038f3d
mov eax, dword [ebp - 0x28]
mov esi, dword [edi + 0x18]
push 1
sub esp, 0x30
mov ecx, dword [eax]
mov edx, dword [ecx + 0x58]
mov ecx, edx
mov eax, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x18], edx
mov ebx, ecx
mov dword [ebp - 0x48], edx
mov edx, dword [esi + 0x58]
mov esi, ecx
movss xmm0, dword [edx + 0x2c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x28], xmm0
movss xmm0, dword [edx + 0x28]
mov edx, ecx
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
movss xmm0, dword [edx + 0x24]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
movss xmm0, dword [esi + 0x1c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [ebx + 0x18]
mov ebx, dword [ebp + 8]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [eax + 0x14]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push dword [ecx + 4]
push dword [ebp + 0xc]
push dword [ebx + 0x7c]
push str.dddffffffd
push dword [0x100597a8]
call fcn.1001dfb0
add esp, 0x48
jmp 0x10038f3d
cmp dword [eax + 0x34], 0xffff
je 0x10038f3d
mov edx, dword [ebp + 0xc]
mov ebx, eax
mov eax, dword [edi + 0x18]
sub esp, 0x14
movss xmm4, dword [ebx + 0x1c]
movss xmm5, dword [ebx + 0x18]
movss xmm2, dword [ebx + 0x24]
mov ebx, dword [edi + 0x18]
mov eax, dword [eax + 0x58]
mov ecx, dword [ebx + 0x58]
mov ebx, dword [ebp + 8]
movss xmm0, dword [ecx + 0x2c]
movss xmm1, dword [ecx + 0x28]
movss xmm3, dword [ecx + 0x14]
mov ecx, dword [ebx + 0x7c]
movss dword [esp + 0x10], xmm0
movss dword [esp + 0xc], xmm1
movss dword [esp + 8], xmm2
movss dword [esp + 4], xmm4
movss dword [esp], xmm5
push dword [eax + 0x34]
call fcn.100070b0
add esp, 0x18
jmp 0x10038f3d
cmp dword [edx + 0x74], 0
je 0x10038f3d
mov ebx, dword [edx + 0x74]
sub esp, 0x14
mov eax, dword [edi + 0x18]
mov edx, dword [ebp + 0xc]
movss xmm5, dword [ebx + 0x50]
movss xmm6, dword [ebx + 0xc]
movss xmm4, dword [ebx + 0x2c]
mov ebx, dword [edi + 0x18]
mov eax, dword [eax + 0x74]
mov ecx, dword [ebx + 0x74]
mov ebx, dword [ebp + 8]
movss xmm2, dword [eax + 4]
movss xmm0, dword [ecx + 0x34]
movss xmm1, dword [ecx + 0x30]
movss xmm3, dword [ecx + 8]
mov ecx, dword [ebx + 0x7c]
movss dword [esp + 0x10], xmm0
movss dword [esp + 0xc], xmm1
movss dword [esp + 8], xmm4
movss dword [esp + 4], xmm5
movss dword [esp], xmm6
call fcn.100076d0
add esp, 0x14
mov esi, dword [edi + 0x18]
cmp dword [esi + 0x64], 0
je 0x10038f51
mov eax, dword [esi + 0x60]
mov esi, dword [esi + 0x70]
mov esi, dword [esi + eax*4]
jmp 0x10038f53
xor esi, esi
test esi, esi
setne al
test al, al
je 0x10038ff8
cmp dword [esi + 0xc], 0
je 0x10038f99
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x20], 0x10
lea edx, [eax + 0xc]
jb 0x10038f74
mov edx, dword [edx]
cmp dword [eax + 0x38], 0x10
lea ecx, [eax + 0x24]
jb 0x10038f7f
mov ecx, dword [ecx]
push dword [eax]
push edx
mov edx, dword [ebp + 0xc]
push ecx
push dword [eax + 4]
mov ecx, dword [ebx + 0x7c]
push dword [esi + 8]
call fcn.10007800
add esp, 0x14
jmp 0x10038fe6
cmp dword [esi + 0x10], 0
je 0x10038fe6
mov eax, dword [esi + 0x10]
cmp dword [eax + 0x20], 0x10
lea edx, [eax + 0xc]
jb 0x10038fad
mov edx, dword [edx]
mov edi, eax
cmp dword [edi + 0x44], 0x10
lea ecx, [edi + 0x30]
jb 0x10038fba
mov ecx, dword [ecx]
mov al, byte [edi + 4]
mov byte [ebp - 0x44], al
mov eax, edi
push dword [eax + 0x48]
push dword [eax]
push dword [eax + 8]
push dword [ebp - 0x44]
push dword [eax + 0x24]
push edx
push dword [edi + 0x2c]
mov edx, dword [ebp + 0xc]
push dword [esi + 8]
push ecx
mov ecx, dword [ebx + 0x7c]
call fcn.100079c0
add esp, 0x24
mov esi, dword [esi]
test esi, esi
setne al
test al, al
jne 0x10038f60
mov edi, dword [ebp - 0x14]
mov eax, dword [edi + 0x18]
lea esi, [edi + 0x18]
cmp byte [eax + 0x18], 0
je 0x10039087
push dword [ebp + 0xc]
mov eax, dword [ebx + 0x7c]
push eax
push str.SetPlayerObjectNoCameraCol__d___d_
mov dword [ebp - 0x10], eax
call fcn.100034d0
mov esi, dword [0x10059568]
add esp, 0xc
test esi, esi
je 0x10039051
cmp esi, fcn.100041f0
jne 0x1003905d
push str.SAMGDK_NATIVE_SEARCH_ALWAYS
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
add esp, 4
test eax, eax
je 0x1003905d
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
test eax, eax
je 0x1003905d
mov ecx, str.SetPlayerObjectNoCameraCol
call fcn.10004200
mov esi, eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x74]
push eax
push 0x100595e0
mov dword [0x10059568], esi
mov dword [ebp - 0x74], 8
call esi
add esp, 8
lea esi, [edi + 0x18]
mov eax, dword [esi]
lea ecx, [ebx + 0x390]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x50]
push eax
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.10041650
mov edx, dword [esi]
cmp dword [edx + 4], 0
je 0x1003910a
push esi
add edx, 0x1c
lea ecx, [ebp - 0x7c]
call fcn.100154b0
add esp, 4
push eax
push eax
mov byte [ebp - 4], 8
lea eax, [ebp - 0x84]
mov ecx, dword [ebx + 0xc0]
push eax
add ecx, 0x6c
call fcn.10016a30
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0x78]
test esi, esi
je 0x1003910a
add dword [esi + 0x40], 0xffffffff
jne 0x1003910a
mov ecx, esi
call fcn.1000c960
mov byte [ebp - 4], 9
push dword [esi - 4]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0x24]
cmp byte [edi + 0xd], 0
jne 0x1003915d
mov eax, dword [edi + 8]
cmp byte [eax + 0xd], 0
jne 0x1003913f
mov edi, eax
mov dword [ebp - 0x14], edi
mov eax, dword [edi]
cmp byte [eax + 0xd], 0
jne 0x1003915d
nop dword [eax]
mov edi, eax
mov dword [ebp - 0x14], edi
mov eax, dword [edi]
cmp byte [eax + 0xd], 0
je 0x10039130
jmp 0x1003915d
mov eax, dword [edi + 4]
cmp byte [eax + 0xd], 0
jne 0x10039158
cmp edi, dword [eax + 8]
jne 0x10039158
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10039148
mov edi, eax
mov dword [ebp - 0x14], edi
cmp edi, dword [ebp - 0x34]
je 0x10039179
lea ecx, [ebx + 0x390]
jmp 0x10038690
mov eax, dword [ebx + 0x398]
mov esi, dword [ebp - 0x24]
mov dword [ebx + 0x4c], eax
push esi
push dword [esi]
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x24]
call fcn.1003e010
push dword [ebp - 0x24]
call fcn.1004a648
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x34]
add esp, 4
push eax
push dword [eax]
lea eax, [ebp + 8]
push eax
call fcn.1003e010
mov ecx, dword [ebp - 0x34]
mov edx, 1
push 0x1c
call fcn.100017c0
mov ecx, dword [ebp - 0xc]
add esp, 4
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8