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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x5321d3
sub esp, 0x88
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
cmp ecx, edx
jne 0x531803
mov byte [esp + 0x94], 1
add esp, 0x88
ret
movzx ebp, byte [ecx + 0xf]
mov ebx, ebp
and ebx, 0x1f
movzx ebp, bl
mov eax, ebp
movzx ebp, byte [edx + 0xf]
mov ebx, ebp
and ebx, 0x1f
movzx ebp, bl
cmp ebp, eax
je 0x531830
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 1
jb 0x531849
cmp eax, 0x10
ja 0x531849
mov byte [esp + 0x94], 1
add esp, 0x88
ret
cmp eax, 0x18
je 0x53183a
cmp eax, 0x1a
je 0x53183a
cmp eax, 0x14
ja 0x531d3f
cmp eax, 0x12
ja 0x531aab
cmp eax, 0x11
jne 0x531938
mov dword [esp], ecx
call fcn.0052e280
mov ebx, dword [esp + 4]
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.0052e280
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x531934
mov dword [esp], edi
mov ebp, dword [esp + 0x84]
mov dword [esp + 4], ebp
mov dword [esp + 0x78], edx
mov dword [esp + 8], edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0xc], esi
call fcn.00403160
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x531934
mov eax, 1
cmp al, 0
je 0x53192a
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.0052e900
mov ebx, dword [esp + 4]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.0052e900
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x24]
cmp ebx, eax
jne 0x53192a
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x531923
xor eax, eax
jmp 0x5318e4
cmp eax, 0x12
jne 0x531a9c
mov dword [esp], edx
call fcn.0052e150
mov ebx, dword [esp + 4]
cmp ebx, 3
jne 0x5319d9
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.0052e280
mov ebx, dword [esp + 4]
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.0052e280
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x5319d9
mov dword [esp], edi
mov ebp, dword [esp + 0x84]
mov dword [esp + 4], ebp
mov dword [esp + 0x78], edx
mov dword [esp + 8], edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0xc], esi
call fcn.00403160
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x5319d9
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.0052e150
mov ebx, dword [esp + 4]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.0052e150
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x1c]
cmp ebx, eax
jne 0x531a92
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.0052e280
mov ebx, dword [esp + 4]
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.0052e280
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x531a92
mov dword [esp], edi
mov ebp, dword [esp + 0x84]
mov dword [esp + 4], ebp
mov dword [esp + 0x78], edx
mov dword [esp + 8], edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0xc], esi
call fcn.00403160
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x531a92
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x531a8b
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 0x13
jne 0x531d08
mov dword [esp + 0x3c], ecx
mov ebx, dword [esp + 0x3c]
movzx ebp, word [ebx + 0x22]
mov ecx, ebp
movzx ebp, word [edx + 0x22]
cmp cx, bp
jne 0x531cf9
mov ebx, dword [esp + 0x3c]
movzx ebp, word [ebx + 0x20]
mov ecx, ebp
mov dword [esp + 0x30], edx
movzx ebp, word [edx + 0x20]
cmp cx, bp
jne 0x531cf9
mov dword [esp + 0x14], 0
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x531bba
call fcn.0052ea20
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 4]
cmp ecx, eax
jge 0x531bea
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x531bdf
mov dword [esp + 4], ecx
call fcn.0052e750
mov ebx, dword [esp + 8]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x531bd4
mov ebx, dword [esp + 0x14]
mov dword [esp + 4], ebx
call fcn.0052e750
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
cmp esi, edx
jne 0x531bc5
mov dword [esp], esi
mov ebp, dword [esp + 0x7c]
mov dword [esp + 4], ebp
mov dword [esp + 0x80], edx
mov dword [esp + 8], edx
mov dword [esp + 0x84], edi
mov dword [esp + 0xc], edi
call fcn.00403160
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x531bc5
mov ebx, dword [esp + 0x14]
inc ebx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
jne 0x531b03
mov dword [0], eax
jmp 0x531b03
mov byte [esp + 0x94], 0
add esp, 0x88
ret
mov dword [0], eax
jmp 0x531b53
mov dword [0], eax
jmp 0x531b29
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x531cba
call fcn.0052eab0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 4]
cmp ecx, eax
jge 0x531cea
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x531cdf
mov dword [esp + 4], ecx
call fcn.0052ebd0
mov ebx, dword [esp + 8]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x531cd4
mov ebx, dword [esp + 0x18]
mov dword [esp + 4], ebx
call fcn.0052ebd0
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
cmp esi, edx
jne 0x531cc5
mov dword [esp], esi
mov ebp, dword [esp + 0x7c]
mov dword [esp + 4], ebp
mov dword [esp + 0x80], edx
mov dword [esp + 8], edx
mov dword [esp + 0x84], edi
mov dword [esp + 0xc], edi
call fcn.00403160
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x531cc5
mov ebx, dword [esp + 0x18]
inc ebx
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
jne 0x531c03
mov dword [0], eax
jmp 0x531c03
mov byte [esp + 0x94], 0
add esp, 0x88
ret
mov dword [0], eax
jmp 0x531c53
mov dword [0], eax
jmp 0x531c29
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 0x14
jne 0x531a9c
mov ebp, dword [ecx + 0x28]
cmp ebp, 0
jne 0x531d30
mov ebp, dword [edx + 0x28]
cmp ebp, 0
jne 0x531d30
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 0x16
ja 0x531ef1
cmp eax, 0x15
jne 0x531e68
mov dword [esp], ecx
call fcn.0052e850
mov ebx, dword [esp + 4]
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.0052e850
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x531e61
mov dword [esp], edi
mov ebp, dword [esp + 0x84]
mov dword [esp + 4], ebp
mov dword [esp + 0x78], edx
mov dword [esp + 8], edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0xc], esi
call fcn.00403160
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x531e61
mov eax, 1
cmp al, 0
je 0x531e57
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.0052e280
mov ebx, dword [esp + 4]
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.0052e280
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x531e57
mov dword [esp], edi
mov ebp, dword [esp + 0x84]
mov dword [esp + 4], ebp
mov dword [esp + 0x78], edx
mov dword [esp + 8], edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0xc], esi
call fcn.00403160
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x531e57
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x531e50
xor eax, eax
jmp 0x531dcb
cmp eax, 0x16
jne 0x531a9c
mov dword [esp], ecx
call fcn.0052e280
mov ebx, dword [esp + 4]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.0052e280
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 4]
mov edi, dword [esp + 8]
cmp esi, edx
jne 0x531ee7
mov dword [esp], esi
mov ebp, dword [esp + 0x7c]
mov dword [esp + 4], ebp
mov dword [esp + 0x80], edx
mov dword [esp + 8], edx
mov dword [esp + 0x84], edi
mov dword [esp + 0xc], edi
call fcn.00403160
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x531ee7
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x531ee0
cmp eax, 0x17
je 0x531e71
cmp eax, 0x19
jne 0x531a9c
mov dword [esp + 0x38], ecx
mov dword [esp + 0x2c], edx
mov ebx, dword [esp + 0x38]
mov eax, dword [ebx + 0x28]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [ebx + 0x28]
cmp eax, ebp
je 0x531f2c
mov byte [esp + 0x94], 0
add esp, 0x88
ret
xor eax, eax
mov ebx, dword [esp + 0x38]
mov ebp, dword [ebx + 0x28]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x24]
cmp eax, ebp
jge 0x5320ce
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x38]
mov ebp, eax
mov esi, dword [ebx + 0x28]
cmp eax, esi
jae 0x5321cc
mov ecx, dword [ebx + 0x24]
imul ebp, ebp, 0xc
add ecx, ebp
mov ebx, dword [esp + 0x2c]
mov ebp, eax
mov esi, dword [ebx + 0x28]
cmp eax, esi
jae 0x5321c5
mov esi, dword [ebx + 0x24]
imul ebp, ebp, 0xc
add esi, ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x34], ecx
cmp ecx, 0
je 0x5321be
mov ebp, dword [ecx]
xor ebx, ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x44], ebp
xor ebx, ebx
cmp ebp, ebx
jne 0x532160
mov ebx, dword [esp + 0x28]
cmp ebx, 0
je 0x532159
mov ebp, dword [ebx]
xor ebx, ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x40], ebp
xor ebx, ebx
cmp ebp, ebx
jne 0x5320fb
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
cmp ecx, eax
jne 0x5320ec
mov dword [esp + 0x70], edi
mov dword [esp], edi
mov dword [esp + 0x74], ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x68], esi
mov dword [esp + 8], esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0xc], eax
call fcn.00452ad0
mov edx, dword [esp + 0x34]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x5320ec
mov ecx, dword [edx + 4]
mov ebx, dword [esp + 0x28]
mov ebp, dword [ebx + 4]
cmp ecx, ebp
je 0x532038
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cld
mov ecx, dword [edx]
mov dword [esp], ecx
call fcn.0052c0c0
mov ebx, dword [esp + 4]
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x28]
cld
mov ecx, dword [ebx]
mov dword [esp], ecx
call fcn.0052c0c0
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 4]
mov eax, dword [esp + 8]
cmp esi, eax
jne 0x5320dd
mov ebp, dword [esp + 0x68]
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 0x70], edi
mov dword [esp + 8], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0xc], eax
call fcn.00452ad0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x5320dd
mov ebx, dword [esp + 0x34]
mov ecx, dword [ebx + 8]
mov ebx, dword [esp + 0x28]
mov ebp, dword [ebx + 8]
cmp ecx, ebp
je 0x5320bd
mov byte [esp + 0x94], 0
add esp, 0x88
ret
mov eax, dword [esp + 0x20]
inc eax
mov ebp, dword [esp + 0x24]
cmp eax, ebp
jl 0x531f45
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
add esp, 0x88
ret
mov byte [esp + 0x94], 0
add esp, 0x88
ret
mov eax, ebp
lea ebx, [esp + 0x60]
mov edx, ebx
mov dword [esp + 0x54], ebp
cmp ebp, 0
je 0x532154
add ebp, 3
mov dword [esp + 0x48], ebx
cmp ebx, 0
je 0x532150
cmp byte [0x6d9e38], 0
jne 0x53213a
mov dword [ebx], ebp
movzx esi, byte [eax + 1]
mov ebx, esi
shl ebx, 8
movzx esi, byte [eax + 2]
or ebx, esi
mov dword [edx + 4], ebx
jmp 0x531fcd
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040f1d0
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x54]
jmp 0x532123
mov dword [ebx], eax
jmp 0x532118
mov dword [ebp], eax
jmp 0x53210c
mov dword [ebx], eax
jmp 0x531fb3
mov edx, ebp
lea ebx, [esp + 0x58]
mov edi, ebx
mov dword [esp + 0x50], ebp
cmp ebp, 0
je 0x5321b9
add ebp, 3
mov dword [esp + 0x4c], ebx
cmp ebx, 0
je 0x5321b5
cmp byte [0x6d9e38], 0
jne 0x53219f
mov dword [ebx], ebp
movzx esi, byte [edx + 1]
mov ebx, esi
shl ebx, 8
movzx esi, byte [edx + 2]
or ebx, esi
mov dword [edi + 4], ebx
jmp 0x531fa6
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040f1d0
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
jmp 0x532188
mov dword [ebx], eax
jmp 0x53217d
mov dword [ebp], eax
jmp 0x532171
mov dword [ecx], eax
jmp 0x531f8c
call fcn.00428680
ud2
call fcn.00428680
ud2
call fcn.00450db0
jmp fcn.005317b0