Function at 0x46bfe0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x580abe
mov eax, dword fs:[0]
push eax
sub esp, 0x88
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5e95e0]
xor eax, esp
push eax
lea eax, [esp + 0x9c]
mov dword fs:[0], eax
lea ecx, [esp + 0x60]
call fcn.00538d38
lea ecx, [esp + 0x4c]
mov dword [esp + 0xa4], 0
call fcn.00538d38
lea ecx, [esp + 0x74]
mov byte [esp + 0xa4], 1
call fcn.00538d38
lea ecx, [esp + 0x88]
mov byte [esp + 0xa4], 2
call fcn.00538d38
push 0xffffffffffffffff
push 0x64
lea ecx, [esp + 0x68]
mov byte [esp + 0xac], 3
call fcn.00538df7
push 0xffffffffffffffff
push 0x64
lea ecx, [esp + 0x54]
call fcn.00538df7
push 0xffffffffffffffff
push 0x64
lea ecx, [esp + 0x7c]
call fcn.00538df7
push 0xffffffffffffffff
push 0x64
lea ecx, [esp + 0x90]
call fcn.00538df7
call fcn.00530e1f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x46c0a8
push 0x80004005
call fcn.00401f70
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
lea esi, [esp + 0x20]
call fcn.00471f60
push str.gameman.txt
lea ecx, [esp + 0x48]
push 0x5f287c
push ecx
mov byte [esp + 0xb0], 5
call fcn.00401ba0
add esp, 0xc
lea edx, [esp + 0x3c]
mov byte [esp + 0xa4], 6
mov eax, dword [esp + 0x44]
push edx
push eax
call fcn.0045f9b0
add esp, 8
push 0
mov ecx, esi
push ecx
lea ebx, [esp + 0x44]
call fcn.00472b50
call fcn.00530e1f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x46c122
push 0x80004005
call fcn.00401f70
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0xa4], 7
call fcn.00530e1f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x46c154
push 0x80004005
call fcn.00401f70
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov byte [esp + 0xa4], 8
mov eax, dword [esp + 0x2c]
xor ebp, ebp
test eax, eax
jle 0x46c332
xor edi, edi
mov dword [esp + 0x14], edi
jmp 0x46c186
mov edi, dword [esp + 0x14]
test edi, edi
jl 0x46c588
cmp ebp, eax
jge 0x46c588
mov ecx, dword [esp + 0x28]
lea edx, [ecx + edi + 4]
push edx
lea ecx, [esp + 0x20]
call fcn.00402310
mov eax, dword [esp + 0x1c]
mov eax, dword [eax - 0xc]
add eax, 0xfffffffc
push eax
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0x24]
call fcn.00401a60
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0xa8], 9
call fcn.00402310
mov byte [esp + 0xa4], 8
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x46c1fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x40]
push ecx
call fcn.00552f5b
add esp, 4
cmp ebp, dword [esp + 0x2c]
jge 0x46c588
mov edx, dword [esp + 0x28]
lea esi, [eax - 1]
add edi, edx
test esi, esi
jl 0x46c588
cmp esi, dword [esp + 0x68]
jge 0x46c588
mov eax, dword [esp + 0x64]
lea ecx, [eax + esi*4]
mov ebx, str.name
mov dword [esp + 0x18], ecx
call fcn.00471cf0
mov ecx, dword [esp + 0x18]
push eax
call fcn.00402310
cmp ebp, dword [esp + 0x2c]
jge 0x46c588
test esi, esi
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
lea edi, [edx + eax]
jl 0x46c588
cmp esi, dword [esp + 0x54]
jge 0x46c588
mov ecx, dword [esp + 0x50]
lea edx, [ecx + esi*4]
mov ebx, 0x59e790
mov dword [esp + 0x18], edx
call fcn.00471cf0
mov ecx, dword [esp + 0x18]
push eax
call fcn.00402310
cmp ebp, dword [esp + 0x2c]
jge 0x46c588
test esi, esi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
lea edi, [eax + ecx]
jl 0x46c588
cmp esi, dword [esp + 0x7c]
jge 0x46c588
mov edx, dword [esp + 0x78]
lea eax, [edx + esi*4]
mov ebx, 0x59e798
mov dword [esp + 0x18], eax
call fcn.00471cf0
mov ecx, dword [esp + 0x18]
push eax
call fcn.00402310
cmp ebp, dword [esp + 0x2c]
jge 0x46c588
test esi, esi
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
lea edi, [ecx + edx]
jl 0x46c588
cmp esi, dword [esp + 0x90]
jge 0x46c588
mov eax, dword [esp + 0x8c]
mov ebx, 0x59e79c
lea esi, [eax + esi*4]
call fcn.00471cf0
push eax
mov ecx, esi
call fcn.00402310
mov eax, dword [esp + 0x2c]
add dword [esp + 0x14], 0x30
add ebp, 1
cmp ebp, eax
jl 0x46c182
mov esi, dword [esp + 0xbc]
add esi, 0xffffffff
js 0x46c588
cmp esi, dword [esp + 0x68]
jge 0x46c588
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0xac]
lea ecx, [ecx + esi*4]
push edx
call fcn.00402310
test esi, esi
jl 0x46c588
cmp esi, dword [esp + 0x54]
jge 0x46c588
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0xb0]
lea ecx, [eax + esi*4]
push edx
call fcn.00402310
test esi, esi
jl 0x46c588
cmp esi, dword [esp + 0x7c]
jge 0x46c588
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0xb4]
lea ecx, [eax + esi*4]
push edx
call fcn.00402310
test esi, esi
jl 0x46c588
cmp esi, dword [esp + 0x90]
jge 0x46c588
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0xb8]
lea ecx, [eax + esi*4]
push edx
call fcn.00402310
lea eax, [esp + 0x24]
push eax
call fcn.0041d2a0
lea ecx, [esp + 0x24]
push ecx
mov ecx, 0x64
call fcn.0041cff0
xor esi, esi
xor edi, edi
lea ebx, [esi + 1]
push ebx
lea edx, [esp + 0x20]
push str.GAME_d
push edx
call fcn.00405480
add esp, 0xc
test esi, esi
jl 0x46c588
cmp esi, dword [esp + 0x2c]
jge 0x46c588
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x1c]
lea ecx, [eax + edi + 4]
push edx
call fcn.00402310
cmp esi, dword [esp + 0x2c]
jge 0x46c588
mov eax, dword [esp + 0x28]
lea ecx, [eax + edi + 8]
mov eax, dword [ecx + 8]
push str.name
push eax
call fcn.005390d4
cmp esi, dword [esp + 0x68]
jge 0x46c588
cmp esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x64]
lea edx, [ecx + esi*4]
jge 0x46c588
mov eax, dword [esp + 0x28]
lea ecx, [eax + edi + 0x1c]
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.00539068
cmp esi, dword [esp + 0x2c]
jge 0x46c588
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + edi + 0x10]
lea ecx, [ecx + edi + 8]
push 0x59e790
push eax
call fcn.005390d4
cmp esi, dword [esp + 0x54]
jge 0x46c588
cmp esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x50]
lea edx, [edx + esi*4]
jge 0x46c588
mov eax, dword [esp + 0x28]
lea ecx, [eax + edi + 0x1c]
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.00539068
cmp esi, dword [esp + 0x2c]
jge 0x46c588
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + edi + 0x10]
lea ecx, [ecx + edi + 8]
push 0x59e798
push eax
call fcn.005390d4
cmp esi, dword [esp + 0x7c]
jge 0x46c588
cmp esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x78]
lea edx, [edx + esi*4]
jge 0x46c588
mov eax, dword [esp + 0x28]
lea ecx, [eax + edi + 0x1c]
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.00539068
cmp esi, dword [esp + 0x2c]
jge 0x46c588
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + edi + 0x10]
lea ecx, [ecx + edi + 8]
push 0x59e79c
push eax
call fcn.005390d4
cmp esi, dword [esp + 0x90]
jge 0x46c588
cmp esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x8c]
lea edx, [edx + esi*4]
jge 0x46c588
mov eax, dword [esp + 0x28]
lea ecx, [eax + edi + 0x1c]
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.00539068
mov esi, ebx
add edi, 0x30
cmp esi, 0x64
jl 0x46c3f5
call fcn.00530e1f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x46c58d
push 0x80004005
call fcn.00401f70
jmp fcn.00530cad
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x24]
mov bl, 0xa
push edx
mov byte [esp + 0xac], bl
call fcn.004722b0
push str.gameman.txt
lea eax, [esp + 0x1c]
push 0x5f287c
push eax
call fcn.00401ba0
add esp, 0xc
mov byte [esp + 0xa4], 0xb
mov eax, dword [eax]
push 1
lea ecx, [esp + 0x18]
mov edx, eax
call fcn.0045fed0
mov byte [esp + 0xa8], bl
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46c60d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa4], 8
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46c635
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa4], 7
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46c65d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa4], 6
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46c685
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa4], 5
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46c6ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0xa8], 4
call fcn.00471fa0
mov byte [esp + 0xa4], 3
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x46c6e7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x88]
mov byte [esp + 0xa4], 2
call fcn.00538dd6
lea ecx, [esp + 0x74]
mov byte [esp + 0xa4], 1
call fcn.00538dd6
lea ecx, [esp + 0x4c]
mov byte [esp + 0xa4], 0
call fcn.00538dd6
lea ecx, [esp + 0x60]
mov dword [esp + 0xa4], 0xffffffff
call fcn.00538dd6
mov ecx, dword [esp + 0x9c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret