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

Disassembly:
push 0xffffffffffffffff
push 0x5e0486
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
mov eax, dword [esp + 0x78]
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esi + 0xc]
and ecx, 0xfffffe7f
xor ebx, ebx
test eax, eax
push edi
mov dword [esp + 0x14], esi
mov dword [esi + 0xc], ecx
je 0x59823f
push 0x38
call fcn.0056d2e0
add esp, 4
mov dword [esp + 0x6c], eax
test eax, eax
mov dword [esp + 0x78], ebx
je 0x5981f5
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0xc]
push 1
push ecx
mov ecx, dword [esi + 0x10]
push edx
push ecx
mov ecx, eax
call fcn.005978a0
jmp 0x5981f7
xor eax, eax
mov ecx, dword [esi + 0x10]
mov edi, eax
xor edx, edx
test ecx, ecx
mov dword [esp + 0x78], 0xffffffff
mov ebx, eax
mov dword [esp + 0x18], edi
jle 0x598280
xor ecx, ecx
mov ebp, dword [eax + 0x34]
mov dword [ecx + ebp], 0x3f800000
mov ebp, dword [eax + 0x34]
mov dword [ecx + ebp + 4], 0
mov ebp, dword [eax + 0x34]
mov dword [ecx + ebp + 8], 0
mov ebp, dword [esi + 0x10]
inc edx
add ecx, 0x28
cmp edx, ebp
jl 0x598212
jmp 0x598280
push 0x2c
call fcn.0056d2e0
add esp, 4
mov dword [esp + 0x6c], eax
test eax, eax
mov dword [esp + 0x78], 1
je 0x598270
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0xc]
push 1
push edx
mov edx, dword [esi + 0x10]
push ecx
push edx
mov ecx, eax
call fcn.00597770
jmp 0x598272
xor eax, eax
mov edi, eax
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x18], edi
mov eax, dword [esi + 4]
push eax
mov ecx, edi
call fcn.00597610
mov ecx, dword [esi + 8]
mov eax, dword [edi + 0x28]
mov dword [edi + 0xc], ecx
mov edx, dword [esi + 0xc]
mov dword [edi + 0x10], edx
mov esi, dword [esi + 0xc]
and esi, 0xf
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x80]
mov ecx, esi
mov dword [esp + 0x10], eax
call fcn.00574840
test al, al
je 0x5987fe
mov edi, edi
mov ecx, esi
call fcn.00574880
mov ecx, esi
call fcn.00574a60
add eax, 0xfffefffb
cmp eax, 0x17
ja case.0x5982e3.65545
movzx ecx, byte [eax + 0x59884c]
jmp dword [ecx*4 + 0x598818]
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x34]
push eax
call dword [edx + 0x2c]
mov eax, dword [esp + 0x2c]
test eax, eax
jle case.0x5982e3.65545
mov ebp, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
jmp 0x598320
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 3
add eax, edi
push eax
call dword [edx + 0x2c]
test ebx, ebx
je 0x598359
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebx + 0x34]
mov eax, dword [esp + 0x1c]
add ecx, edi
lea edx, [edx + eax + 0x1c]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
add ecx, 0x28
add edi, 0xc
dec eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
jne 0x598320
jmp case.0x5982e3.65545
mov edx, dword [esp + 0x14]
test byte [edx + 0xc], 0x10
je case.0x5982e3.65545
mov ecx, dword [esi + 0x210]
mov eax, dword [ecx]
push 4
push 1
lea edx, [esp + 0x38]
push edx
call dword [eax + 0x2c]
mov eax, dword [esp + 0x30]
test eax, eax
jle case.0x5982e3.65545
mov ebp, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
mov edx, dword [ebp + 0x14]
mov ecx, dword [esi + 0x210]
mov eax, dword [ecx]
push 4
push 3
add edx, edi
push edx
call dword [eax + 0x2c]
test ebx, ebx
je 0x5983ec
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebx + 0x34]
mov edx, dword [esp + 0x1c]
add eax, edi
lea ecx, [ecx + edx + 0x10]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
add ecx, 0x28
add edi, 0xc
dec eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
jne 0x5983b3
jmp case.0x5982e3.65545
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
test ah, 8
je case.0x5982e3.65545
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x3c]
push eax
call dword [edx + 0x2c]
mov ebp, dword [esp + 0x34]
test ebp, ebp
jle case.0x5982e3.65545
xor edi, edi
lea esp, [esp]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 3
add eax, edi
push eax
call dword [edx + 0x2c]
add edi, 0xc
dec ebp
jne 0x598440
jmp case.0x5982e3.65545
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
test ah, 0x10
je case.0x5982e3.65545
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x40]
push eax
call dword [edx + 0x2c]
mov ebp, dword [esp + 0x38]
test ebp, ebp
jle case.0x5982e3.65545
xor edi, edi
jmp 0x5984a0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 3
add eax, edi
push eax
call dword [edx + 0x2c]
add edi, 0xc
dec ebp
jne 0x5984a0
jmp case.0x5982e3.65545
mov ecx, dword [esp + 0x14]
test byte [ecx + 0xc], 0x20
je case.0x5982e3.65545
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x44]
push eax
call dword [edx + 0x2c]
mov ebp, dword [esp + 0x3c]
xor edi, edi
test ebp, ebp
jle case.0x5982e3.65545
jmp 0x598500
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x30]
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [eax + edi*4]
push eax
call dword [edx + 0x2c]
inc edi
cmp edi, ebp
jl 0x598500
jmp case.0x5982e3.65545
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
test ah, 0x40
je case.0x5982e3.65545
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x2c]
push eax
call dword [edx + 0x2c]
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x48]
push eax
call dword [edx + 0x2c]
mov eax, dword [esp + 0x24]
xor edi, edi
test eax, eax
jle case.0x5982e3.65545
mov ebp, dword [esp + 0x10]
mov edi, edi
mov eax, dword [esp + 0x40]
mov eax, dword [ebp + eax*4 + 0x30]
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [eax + edi*4]
push eax
call dword [edx + 0x2c]
mov eax, dword [esp + 0x24]
inc edi
cmp edi, eax
jl 0x598570
jmp case.0x5982e3.65545
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x30]
push eax
call dword [edx + 0x2c]
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x4c]
push eax
call dword [edx + 0x2c]
mov ebp, dword [esp + 0x44]
cmp ebp, dword [esp + 0x48]
jge case.0x5982e3.65545
mov eax, dword [esp + 0x28]
xor edi, edi
test eax, eax
jle case.0x5982e3.65545
lea ecx, [ecx]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + ebp*4 + 0x20]
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 2
lea eax, [eax + edi*8]
push eax
call dword [edx + 0x2c]
mov eax, dword [esp + 0x28]
inc edi
cmp edi, eax
jl 0x5985e0
jmp case.0x5982e3.65545
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x54]
push eax
call dword [edx + 0x2c]
mov ebp, dword [esp + 0x4c]
xor edi, edi
test ebp, ebp
jle case.0x5982e3.65545
jmp 0x598630
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x58]
push eax
call dword [edx + 0x2c]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x24]
mov ax, word [esp + 0x50]
mov word [edx + edi*2], ax
inc edi
cmp edi, ebp
jl 0x598630
jmp case.0x5982e3.65545
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x5c]
push eax
call dword [edx + 0x2c]
mov ebp, dword [esp + 0x54]
test ebp, ebp
jle case.0x5982e3.65545
xor edi, edi
mov eax, dword [ebx + 0x34]
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 3
add eax, edi
push eax
call dword [edx + 0x2c]
add edi, 0x28
dec ebp
jne 0x598680
jmp case.0x5982e3.65545
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x60]
push eax
call dword [edx + 0x2c]
mov ebp, dword [esp + 0x58]
test ebp, ebp
jle case.0x5982e3.65545
xor edi, edi
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 1
push 4
lea eax, [esp + 0x88]
push eax
call dword [edx + 0x2c]
mov ecx, dword [ebx + 0x34]
mov dl, byte [esp + 0x83]
mov byte [ecx + edi + 0xc], dl
mov eax, dword [ebx + 0x34]
mov cl, byte [esp + 0x82]
mov byte [eax + edi + 0xd], cl
mov edx, dword [ebx + 0x34]
mov al, byte [esp + 0x81]
mov byte [edx + edi + 0xe], al
mov ecx, dword [ebx + 0x34]
mov dl, byte [esp + 0x80]
mov byte [ecx + edi + 0xf], dl
add edi, 0x28
dec ebp
jne 0x5986c2
jmp case.0x5982e3.65545
mov ecx, dword [esi + 0x210]
mov eax, dword [ecx]
push 4
push 1
lea edx, [esp + 0x64]
push edx
call dword [eax + 0x2c]
mov ebp, dword [esp + 0x5c]
lea eax, [ebp*4]
push eax
mov dword [ebx + 0x2c], ebp
call fcn.00445250
add esp, 4
xor edi, edi
test ebp, ebp
mov dword [ebx + 0x30], eax
jle case.0x5982e3.65545
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x68]
push eax
call dword [edx + 0x2c]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x88]
shl ecx, 6
add ecx, edx
mov edx, dword [ebx + 0x30]
mov dword [edx + edi*4], ecx
inc edi
cmp edi, ebp
jl 0x598754
jmp case.0x5982e3.65545
mov ecx, dword [esi + 0x210]
mov eax, dword [ecx]
push 4
push 1
lea edx, [esp + 0x6c]
push edx
call dword [eax + 0x2c]
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x18]
mov dword [edi + 0x18], eax
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x74]
push eax
call dword [edx + 0x2c]
mov ecx, dword [esi + 0x210]
mov edx, dword [ecx]
push 4
push 1
lea eax, [esp + 0x70]
push eax
call dword [edx + 0x2c]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x14]
test eax, eax
mov eax, dword [esp + 0x68]
jg 0x5987df
mov eax, dword [esp + 0x6c]
mov dword [edi + 0x1c], eax
mov ecx, esi
call fcn.00574a10
mov ecx, esi
call fcn.00574840
test al, al
jne 0x5982c0
mov eax, dword [esp + 0x18]
jmp 0x598800
mov eax, edi
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x6c
ret 0xc