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

Disassembly:
push 0xffffffffffffffff
push 0x4b75a2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x44
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x14], edi
call fcn.004394c0
xor eax, eax
mov dword [edi], 0x4f8944
mov dword [esp + 0x5c], eax
mov dword [edi + 0x2c], eax
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], eax
lea ebx, [edi + 0x38]
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], eax
lea ebp, [edi + 0x50]
mov dword [ebp], eax
mov dword [ebp + 4], eax
mov dword [ebp + 8], eax
mov dword [edi + 0x74], eax
mov dword [edi + 0x78], eax
mov dword [edi + 0x7c], eax
mov ecx, 0x529985
mov byte [esp + 0x5c], 5
call fcn.00409200
mov eax, dword [str.mapbg.bgd]
mov ecx, dword [0x5297c4]
push eax
push ebx
call fcn.004167b0
test eax, eax
je 0x44080d
mov ecx, 0x529985
call fcn.00409200
mov ecx, dword [0x5297c4]
call fcn.004199c0
mov ecx, eax
call fcn.004163d0
test eax, eax
jl 0x44080d
mov ecx, 0x529985
call fcn.00409200
mov ecx, dword [0x5297c4]
call fcn.004199c0
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx + 0x2c]
mov ecx, 0x529985
call fcn.00409200
mov ecx, dword [0x5297c4]
call fcn.004199c0
mov esi, eax
mov eax, dword [esi]
push 0
push 0
mov ecx, ebx
mov dword [esp + 0x28], eax
call fcn.00410900
push eax
mov eax, dword [esp + 0x28]
mov ecx, esi
call dword [eax + 0xc]
mov ecx, 0x529985
call fcn.00409200
mov ecx, dword [0x5297c4]
call fcn.004199c0
mov edx, dword [eax]
push 0
mov ecx, eax
call dword [edx + 0x2c]
push 5
mov ecx, ebp
call fcn.004412a0
xor esi, esi
mov dword [esp + 0x10], 0x523338
mov eax, dword [ebp + 8]
test eax, eax
je 0x4402ed
mov eax, dword [eax + 0x10]
cmp esi, eax
jge 0x440384
mov edx, dword [ebp]
test edx, edx
je 0x440356
mov eax, dword [ebp + 8]
test eax, eax
jne 0x440307
xor ecx, ecx
jmp 0x44030a
mov ecx, dword [eax + 0x10]
mov ebx, dword [ebp + 4]
cmp ebx, ecx
jae 0x44036d
test eax, eax
je 0x44031a
mov eax, dword [eax + 0xc]
jmp 0x44031c
xor eax, eax
add ebx, esi
imul ebx, eax
mov ecx, 0x529985
add ebx, edx
call fcn.00409200
mov eax, dword [esp + 0x10]
mov ecx, dword [0x5297c4]
push 0
push eax
push ebx
call fcn.0041c340
test eax, eax
je 0x44080d
mov eax, dword [esp + 0x10]
inc esi
add eax, 0x28
mov dword [esp + 0x10], eax
jmp 0x4402e3
push 0x4ffd3c
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x28], 0x4f19e8
call fcn.00494fe2
push 0x4ffd2c
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x24], 0x4f19ec
call fcn.00494fe2
mov eax, dword [0x523324]
mov ecx, dword [0x523328]
mov dword [edi + 0x68], ecx
mov dword [edi + 0x64], eax
mov ecx, dword [0x523330]
mov eax, dword [0x52332c]
mov dword [edi + 0x70], ecx
push 9
lea ecx, [edi + 0x2c]
mov dword [edi + 0x6c], eax
call fcn.00440eb0
push 0x28c
call fcn.00494da6
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0x5c], 6
je 0x4403eb
push fcn.0041ada0
push fcn.0041ad30
push 9
lea esi, [eax + 4]
push 0x48
push esi
mov dword [eax], 9
call fcn.0049602b
mov eax, esi
jmp 0x4403ed
xor eax, eax
push 0
push 9
push eax
lea ecx, [edi + 0x44]
mov byte [esp + 0x68], 5
call fcn.0041d7b0
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], ebp
nop
mov eax, dword [edi + 0x34]
test eax, eax
je 0x44041a
mov eax, dword [eax + 0x10]
cmp ebx, eax
jge 0x440822
mov ecx, edi
call fcn.00439920
mov ecx, 0x529985
mov esi, eax
call fcn.00409200
mov eax, dword [ebp + 0x5231e4]
mov ecx, dword [0x5297c4]
push 1
push eax
push esi
call fcn.0041c340
test eax, eax
je 0x44080d
mov edx, dword [edi + 0x44]
test edx, edx
je 0x4407b8
mov eax, dword [edi + 0x4c]
test eax, eax
jne 0x440468
xor ecx, ecx
jmp 0x44046b
mov ecx, dword [eax + 0x10]
mov esi, dword [edi + 0x48]
cmp esi, ecx
jae 0x4407cf
test eax, eax
je 0x44047f
mov eax, dword [eax + 0xc]
jmp 0x440481
xor eax, eax
add esi, ebx
imul esi, eax
mov ecx, 0x529985
add esi, edx
call fcn.00409200
mov ecx, dword [str.map_p.vrm]
push ecx
mov ecx, dword [0x5297c4]
push esi
call fcn.0041c670
test eax, eax
je 0x44080d
mov edx, dword [ebp + 0x5231e8]
mov eax, dword [ebp + 0x5231ec]
lea esi, [edi + 0x44]
push ebx
mov ecx, esi
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
call fcn.00410900
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
push 1
mov dword [eax + 0x18], ecx
push ebx
mov ecx, esi
mov dword [eax + 0x1c], edx
call fcn.00410900
mov ecx, eax
call fcn.00417e20
mov eax, dword [ebp + 0x5231e0]
push eax
lea ecx, [esp + 0x24]
call fcn.004073c0
push ebx
lea ecx, [edi + 0x2c]
mov byte [esp + 0x60], 7
call fcn.00410900
xor ebp, ebp
mov dword [eax], 0
mov dword [esp + 0x1c], ebp
mov ecx, ebp
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x18]
test ecx, eax
mov dword [esp + 0x28], eax
jne 0x44072b
mov ecx, 0x529984
call fcn.004024f0
mov ecx, 0x5299c8
call fcn.00403800
mov ecx, dword [0x529788]
push 0
add ecx, 0x1c
call fcn.00410900
mov edx, dword [ebp*4 + 0x5231c4]
mov ecx, dword [0x529784]
push edx
add ecx, 0x28
mov esi, eax
call fcn.00403010
mov ecx, eax
call fcn.00415bc0
push eax
mov ecx, esi
call fcn.004506a0
cmp eax, 9
jge 0x44072b
mov ecx, 0x529984
call fcn.004024f0
mov ecx, 0x5299c8
call fcn.00403800
mov ecx, dword [0x529788]
push 0
add ecx, 0x1c
call fcn.00410900
mov ecx, dword [0x529784]
mov esi, eax
mov eax, dword [ebp*4 + 0x5231c4]
push eax
add ecx, 0x28
call fcn.00403010
mov ecx, eax
call fcn.00415bc0
push eax
mov ecx, esi
call fcn.004506a0
add eax, dword [esp + 0x1c]
lea ecx, [eax + eax*2]
lea edx, [ecx*4 + 0x51cf90]
push edx
lea eax, [esp + 0x24]
push eax
mov ecx, edi
call fcn.00440d40
test al, al
je 0x44072b
mov ecx, 0x529984
call fcn.004024f0
mov ecx, 0x5299c8
call fcn.00403800
mov ecx, dword [0x529788]
push 0
add ecx, 0x1c
call fcn.00410900
mov ecx, dword [ebp*4 + 0x5231c4]
push ecx
mov ecx, dword [0x529784]
add ecx, 0x28
mov esi, eax
call fcn.00403010
mov ecx, eax
call fcn.00415bc0
push eax
mov ecx, esi
call fcn.004506a0
push eax
push ebp
push ebx
mov ecx, edi
call fcn.00440c90
mov esi, eax
test esi, esi
jl 0x44072b
mov ecx, 0x529984
call fcn.004024f0
mov ecx, 0x5299c8
call fcn.00403800
mov ecx, dword [0x529788]
push 0
add ecx, 0x1c
call fcn.00410900
mov edx, dword [ebp*4 + 0x5231c4]
mov ecx, dword [0x529784]
push edx
add ecx, 0x28
mov dword [esp + 0x28], eax
call fcn.00403010
mov ecx, eax
call fcn.00415bc0
mov ecx, dword [esp + 0x24]
push eax
call fcn.004506a0
test eax, eax
je 0x44071d
push ebx
lea ecx, [edi + 0x2c]
call fcn.00410900
mov ecx, 0x529985
mov dword [esp + 0x24], eax
call fcn.00409200
mov eax, dword [ebp*4 + 0x5231b0]
mov ecx, dword [esp + 0x24]
lea edi, [esi + esi*2]
shl edi, 2
lea edx, [ecx + edi + 0xc]
mov ecx, dword [0x5297c4]
push eax
push edx
call fcn.004167b0
test eax, eax
je 0x4407e6
mov ecx, dword [esp + 0x14]
push 0
push ebx
add ecx, 0x2c
call fcn.00410900
lea ecx, [eax + edi + 0xc]
call fcn.00410900
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + esi*8 + 0x5231f4]
mov edx, dword [edx + esi*8 + 0x5231f0]
mov edi, dword [eax]
push ecx
push edx
mov ecx, eax
call dword [edi + 0x80]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
or ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x1c]
add eax, 9
inc ebp
cmp eax, 0x2d
mov dword [esp + 0x1c], eax
jb 0x440515
lea esi, [edi + 0x2c]
push ebx
mov ecx, esi
call fcn.00410900
cmp dword [eax], 0
jne 0x440782
push ebx
mov ecx, esi
call fcn.00410900
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x523200]
test esi, esi
lea ecx, [eax + 4]
jne 0x44076d
xor eax, eax
jmp 0x44077b
mov eax, esi
lea ebp, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x440772
sub eax, ebp
push eax
push esi
call fcn.004031a0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x5c], 5
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4407a5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
inc ebx
add eax, 0x24
mov dword [esp + 0x10], eax
mov ebp, eax
jmp 0x440410
push 0x4ffd3c
lea eax, [esp + 0x30]
push eax
mov dword [esp + 0x34], 0x4f19e8
call fcn.00494fe2
push 0x4ffd2c
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], 0x4f19ec
call fcn.00494fe2
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x5c], 5
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x440809
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov edi, dword [esp + 0x14]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
add esp, 0x50
ret
or eax, 0xffffffff
mov ecx, 0x529984
mov dword [edi + 0x28], 0x523120
mov dword [edi + 0x14], 0
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], 0
call fcn.004024f0
mov ecx, 0x529984
call fcn.004024f0
mov ebx, dword [0x529784]
add ebx, 0x28
mov ecx, ebx
call fcn.00403010
mov esi, dword [eax + 0x10]
xor ebp, ebp
mov ecx, ebx
mov dword [esp + 0x48], ebp
call fcn.00403010
mov eax, dword [eax + 0xc]
lea edx, [esp + 0x34]
mov ecx, ebp
push edx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], esi
call fcn.004093a0
mov ecx, eax
call fcn.004163a0
mov ecx, edi
call fcn.004413b0
mov ecx, dword [esp + 0x54]
mov dword [edi + 4], 1
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x50
ret