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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x5914aa08
push eax
mov eax, dword [esp + 0x18]
mov dword fs:[0], esp
sub esp, 0x60
test eax, eax
push ebx
push ebp
push esi
push edi
je 0x5900f99a
mov dword [eax], 0
mov esi, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
test esi, esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x64], ebp
je 0x59010310
test ebp, ebp
je 0x59010310
mov edi, 0x591892c4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x591892c4
push ebp
push esi
call fcn.5900d6d0
mov ebx, eax
add esp, 0x10
cmp ebx, 0xffffffff
mov dword [esp + 0x2c], ebx
je 0x59010310
mov edi, 0x591892c4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edx, ecx
add edx, ebx
xor ebx, ebx
add edx, esi
cmp byte [edx], 0xd
je 0x5900fa38
mov ecx, dword [esp + 0x2c]
mov eax, ebp
sub eax, ecx
mov dword [esp + 0x58], eax
mov edi, 0x591892c4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x58]
not ecx
dec ecx
sub eax, ecx
cmp ebx, eax
jge 0x5900fa38
mov al, byte [ebx + edx + 1]
inc ebx
cmp al, 0xd
jne 0x5900fa16
mov edi, 0x591892c4
or ecx, 0xffffffff
xor eax, eax
mov edx, ebp
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x2c]
not ecx
dec ecx
sub edx, eax
sub edx, ecx
cmp ebx, edx
jge 0x59010310
test ebx, ebx
jle 0x59010310
mov eax, dword [0x59162880]
mov dword [esp + 0x84], eax
push 0x591892bc
push ebp
push esi
mov dword [esp + 0x84], 0
call fcn.5900f930
mov edx, eax
or ebx, 0xffffffff
add esp, 0xc
cmp edx, ebx
je 0x59010300
mov edi, 0x591892bc
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
lea ecx, [esp + 0x24]
sub ebp, edx
add esi, edx
push ebp
push esi
call fcn.590a0970
lea ecx, [esp + 0x5c]
lea edx, [esp + 0x80]
push ecx
push 0x59188924
mov byte [esp + 0x80], 2
push edx
lea ecx, [esp + 0x30]
mov dword [esp + 0x68], 0
call fcn.59082010
mov ebp, dword [esp + 0x80]
mov byte [esp + 0x78], 3
mov eax, dword [ebp - 8]
test eax, eax
jne 0x5900fb07
lea ecx, [esp + 0x80]
mov byte [esp + 0x78], 2
call fcn.590a0ec0
jmp 0x590102f2
mov eax, dword [0x59162880]
mov dword [esp + 0x20], eax
mov byte [esp + 0x78], 5
mov dword [esp + 0x1c], eax
mov byte [esp + 0x78], 6
mov dword [esp + 0x18], eax
mov byte [esp + 0x78], 7
mov dword [esp + 0x14], eax
mov byte [esp + 0x78], 8
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 8]
mov byte [esp + 0x78], 9
test eax, eax
je 0x59010094
xor ebx, ebx
mov esi, 0x5918809c
jmp 0x5900fb54
mov ebp, dword [esp + 0x80]
mov edx, dword [esi]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
push edx
call fcn.590952c0
add esp, 0xc
test eax, eax
je 0x5900fb82
add esi, 4
inc ebx
cmp esi, 0x591880a0
jb 0x5900fb4d
jmp 0x5900fc1a
mov edi, dword [ebx*4 + 0x5918809c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov eax, esp
mov dword [esp + 0x70], esp
push ecx
push eax
lea ecx, [esp + 0x8c]
call fcn.590a30b0
lea ecx, [esp + 0x34]
mov byte [esp + 0x7c], 9
push ecx
call fcn.5900b190
add esp, 8
mov eax, dword [esp + 0x30]
mov byte [esp + 0x78], 0xb
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x5900fc0c
push 0xfde9
push eax
lea ecx, [esp + 0x28]
call fcn.590aa6a0
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.5900bb50
add esp, 8
lea ecx, [esp + 0x2c]
mov byte [esp + 0x78], 0xc
push ecx
lea ecx, [esp + 0x24]
call fcn.590a63d0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x78], 0xb
call fcn.590a6240
lea ecx, [esp + 0x30]
mov byte [esp + 0x78], 9
call fcn.590a0ec0
xor ebp, ebp
mov esi, 0x591880a4
mov edx, dword [esi]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x80]
not ecx
dec ecx
push ecx
push eax
push edx
call fcn.590952c0
add esp, 0xc
test eax, eax
je 0x5900fc56
add esi, 4
inc ebp
cmp esi, 0x591880a8
jb 0x5900fc21
jmp 0x5900fcf7
mov edi, dword [ebp*4 + 0x591880a4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov edx, esp
mov dword [esp + 0x70], esp
push ecx
push edx
lea ecx, [esp + 0x8c]
call fcn.590a30b0
lea eax, [esp + 0x3c]
mov byte [esp + 0x7c], 9
push eax
call fcn.5900b190
add esp, 8
mov eax, dword [esp + 0x38]
mov byte [esp + 0x78], 0xe
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x5900fce9
push 0xfde9
push eax
lea ecx, [esp + 0x8c]
call fcn.590aa6a0
mov ecx, dword [esp + 0x84]
lea edx, [esp + 0x34]
push ecx
push edx
call fcn.5900bb50
add esp, 8
lea eax, [esp + 0x34]
lea ecx, [esp + 0x84]
push eax
mov byte [esp + 0x7c], 0xf
call fcn.590a63d0
lea ecx, [esp + 0x34]
mov byte [esp + 0x78], 0xe
call fcn.590a6240
lea ecx, [esp + 0x38]
mov byte [esp + 0x78], 9
call fcn.590a0ec0
xor ebp, ebp
mov esi, 0x591880a8
mov edx, dword [esi]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [esp + 0x84]
push ecx
push edx
call fcn.590952c0
add esp, 0xc
test eax, eax
je 0x5900fd33
add esi, 4
inc ebp
cmp esi, 0x591880ac
jb 0x5900fcfe
jmp 0x5900fdcb
mov edi, dword [ebp*4 + 0x591880a8]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov edx, esp
mov dword [esp + 0x70], esp
push ecx
push edx
lea ecx, [esp + 0x8c]
call fcn.590a30b0
lea eax, [esp + 0x44]
mov byte [esp + 0x7c], 9
push eax
call fcn.5900b190
add esp, 8
mov eax, dword [esp + 0x40]
mov byte [esp + 0x78], 0x11
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x5900fdbd
push 0xfde9
push eax
lea ecx, [esp + 0x24]
call fcn.590aa6a0
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x3c]
push ecx
push edx
call fcn.5900bb50
add esp, 8
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x1c]
push eax
mov byte [esp + 0x7c], 0x12
call fcn.590a63d0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x78], 0x11
call fcn.590a6240
lea ecx, [esp + 0x40]
mov byte [esp + 0x78], 9
call fcn.590a0ec0
xor ebp, ebp
mov esi, 0x591880ac
mov edx, dword [esi]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [esp + 0x84]
push ecx
push edx
call fcn.590952c0
add esp, 0xc
test eax, eax
je 0x5900fe07
add esi, 4
inc ebp
cmp esi, 0x591880b0
jb 0x5900fdd2
jmp 0x5900fe9f
mov edi, dword [ebp*4 + 0x591880ac]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov edx, esp
mov dword [esp + 0x70], esp
push ecx
push edx
lea ecx, [esp + 0x8c]
call fcn.590a30b0
lea eax, [esp + 0x4c]
mov byte [esp + 0x7c], 9
push eax
call fcn.5900b190
add esp, 8
mov eax, dword [esp + 0x48]
mov byte [esp + 0x78], 0x14
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x5900fe91
push 0xfde9
push eax
lea ecx, [esp + 0x20]
call fcn.590aa6a0
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x44]
push ecx
push edx
call fcn.5900bb50
add esp, 8
lea eax, [esp + 0x44]
lea ecx, [esp + 0x18]
push eax
mov byte [esp + 0x7c], 0x15
call fcn.590a63d0
lea ecx, [esp + 0x44]
mov byte [esp + 0x78], 0x14
call fcn.590a6240
lea ecx, [esp + 0x48]
mov byte [esp + 0x78], 9
call fcn.590a0ec0
xor ebp, ebp
mov esi, 0x591880b0
mov edx, dword [esi]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [esp + 0x84]
push ecx
push edx
call fcn.590952c0
add esp, 0xc
test eax, eax
je 0x5900fedb
add esi, 4
inc ebp
cmp esi, 0x591880b4
jb 0x5900fea6
jmp 0x5900ff73
mov edi, dword [ebp*4 + 0x591880b0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov edx, esp
mov dword [esp + 0x70], esp
push ecx
push edx
lea ecx, [esp + 0x8c]
call fcn.590a30b0
lea eax, [esp + 0x54]
mov byte [esp + 0x7c], 9
push eax
call fcn.5900b190
add esp, 8
mov eax, dword [esp + 0x50]
mov byte [esp + 0x78], 0x17
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x5900ff65
push 0xfde9
push eax
lea ecx, [esp + 0x1c]
call fcn.590aa6a0
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x4c]
push ecx
push edx
call fcn.5900bb50
add esp, 8
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x14]
push eax
mov byte [esp + 0x7c], 0x18
call fcn.590a63d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x78], 0x17
call fcn.590a6240
lea ecx, [esp + 0x50]
mov byte [esp + 0x78], 9
call fcn.590a0ec0
xor ebp, ebp
mov esi, 0x591880a0
mov edx, dword [esi]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [esp + 0x84]
push ecx
push edx
call fcn.590952c0
add esp, 0xc
test eax, eax
je 0x5900ffaf
add esi, 4
inc ebp
cmp esi, 0x591880a4
jb 0x5900ff7a
jmp 0x59010047
mov edi, dword [ebp*4 + 0x591880a0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov edx, esp
mov dword [esp + 0x70], esp
push ecx
push edx
lea ecx, [esp + 0x8c]
call fcn.590a30b0
lea eax, [esp + 0x5c]
mov byte [esp + 0x7c], 9
push eax
call fcn.5900b190
add esp, 8
mov eax, dword [esp + 0x58]
mov byte [esp + 0x78], 0x1a
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x59010039
push 0xfde9
push eax
lea ecx, [esp + 0x18]
call fcn.590aa6a0
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x54]
push ecx
push edx
call fcn.5900bb50
add esp, 8
lea eax, [esp + 0x54]
lea ecx, [esp + 0x10]
push eax
mov byte [esp + 0x7c], 0x1b
call fcn.590a63d0
lea ecx, [esp + 0x54]
mov byte [esp + 0x78], 0x1a
call fcn.590a6240
lea ecx, [esp + 0x58]
mov byte [esp + 0x78], 9
call fcn.590a0ec0
lea ecx, [esp + 0x5c]
lea edx, [esp + 0x60]
push ecx
push 0x59188924
push edx
lea ecx, [esp + 0x30]
call fcn.59082010
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0x7c], 0x1c
call fcn.590a1040
lea ecx, [esp + 0x60]
mov byte [esp + 0x78], 9
call fcn.590a0ec0
mov ebp, dword [esp + 0x80]
mov eax, dword [ebp - 8]
test eax, eax
jne 0x5900fb44
or ebx, 0xffffffff
mov eax, dword [esp + 0x84]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x590100e0
xor esi, esi
test ecx, ecx
jle 0x590100cf
mov ax, word [eax + esi*2]
push eax
call fcn.590897d0
add esp, 4
test eax, eax
je 0x590100c8
mov eax, dword [esp + 0x84]
inc esi
cmp esi, dword [eax - 8]
jl 0x590100a8
jmp 0x590100cf
mov eax, dword [esp + 0x84]
cmp esi, dword [eax - 8]
jne 0x590100e0
lea ecx, [esp + 0x84]
call fcn.590a5fb0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x59010177
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 8]
test eax, eax
jne 0x59010177
mov edx, dword [esp + 0x10]
mov eax, dword [edx - 8]
test eax, eax
jne 0x59010177
mov eax, dword [esp + 0x20]
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x59010177
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 8]
test eax, eax
jne 0x59010177
lea ecx, [esp + 0x10]
mov byte [esp + 0x78], 8
call fcn.590a6240
lea ecx, [esp + 0x14]
mov byte [esp + 0x78], 7
call fcn.590a6240
lea ecx, [esp + 0x18]
mov byte [esp + 0x78], 6
call fcn.590a6240
lea ecx, [esp + 0x1c]
mov byte [esp + 0x78], 5
call fcn.590a6240
lea ecx, [esp + 0x20]
mov byte [esp + 0x78], 3
call fcn.590a6240
lea ecx, [esp + 0x80]
mov byte [esp + 0x78], 2
call fcn.590a0ec0
jmp 0x590102f2
mov eax, dword [esp + 0x88]
test eax, eax
je 0x590101e4
mov dword [eax], 1
lea ecx, [esp + 0x10]
mov byte [esp + 0x78], 8
call fcn.590a6240
lea ecx, [esp + 0x14]
mov byte [esp + 0x78], 7
call fcn.590a6240
lea ecx, [esp + 0x18]
mov byte [esp + 0x78], 6
call fcn.590a6240
lea ecx, [esp + 0x1c]
mov byte [esp + 0x78], 5
call fcn.590a6240
lea ecx, [esp + 0x20]
mov byte [esp + 0x78], 3
call fcn.590a6240
lea ecx, [esp + 0x80]
mov byte [esp + 0x78], 2
call fcn.590a0ec0
jmp 0x590102f2
lea edx, [esp + 0x28]
push 0
push edx
call fcn.59059db0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push 1
push 0
push 0
push 0
push eax
mov eax, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0x50]
push ecx
push edx
push eax
mov byte [esp + 0xac], 0x1f
call fcn.5900c690
add esp, 0x34
test eax, eax
je 0x5901028d
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x28]
push edi
push esi
push ecx
call fcn.5900c480
add esp, 0xc
test eax, eax
je 0x5901028d
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push 0
push 0
push 0
push 0
push 0
push 0
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0x50]
push eax
push ecx
push 2
push 1
push edx
push edi
push esi
call fcn.5900e750
add esp, 0x44
lea ecx, [esp + 0x28]
mov byte [esp + 0x78], 9
call fcn.590a0ec0
lea ecx, [esp + 0x10]
mov byte [esp + 0x78], 8
call fcn.590a6240
lea ecx, [esp + 0x14]
mov byte [esp + 0x78], 7
call fcn.590a6240
lea ecx, [esp + 0x18]
mov byte [esp + 0x78], 6
call fcn.590a6240
lea ecx, [esp + 0x1c]
mov byte [esp + 0x78], 5
call fcn.590a6240
lea ecx, [esp + 0x20]
mov byte [esp + 0x78], 3
call fcn.590a6240
lea ecx, [esp + 0x80]
mov byte [esp + 0x78], 2
call fcn.590a0ec0
lea ecx, [esp + 0x24]
mov byte [esp + 0x78], 0
call fcn.590a0ec0
lea ecx, [esp + 0x84]
mov dword [esp + 0x78], ebx
call fcn.590a6240
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x6c
ret