Function at 0x5319b0
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 0x5323d3
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 0x531a03
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 0x531a30
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 1
jb 0x531a49
cmp eax, 0x10
ja 0x531a49
mov byte [esp + 0x94], 1
add esp, 0x88
ret
cmp eax, 0x18
je 0x531a3a
cmp eax, 0x1a
je 0x531a3a
cmp eax, 0x14
ja 0x531f3f
cmp eax, 0x12
ja 0x531cab
cmp eax, 0x11
jne 0x531b38
mov dword [esp], ecx
call fcn.0052e480
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.0052e480
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x531b34
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.00403360
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x531b34
mov eax, 1
cmp al, 0
je 0x531b2a
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.0052eb00
mov ebx, dword [esp + 4]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.0052eb00
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x24]
cmp ebx, eax
jne 0x531b2a
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x531b23
xor eax, eax
jmp 0x531ae4
cmp eax, 0x12
jne 0x531c9c
mov dword [esp], edx
call fcn.0052e350
mov ebx, dword [esp + 4]
cmp ebx, 3
jne 0x531bd9
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.0052e480
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.0052e480
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x531bd9
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.00403360
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x531bd9
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.0052e350
mov ebx, dword [esp + 4]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.0052e350
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x1c]
cmp ebx, eax
jne 0x531c92
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.0052e480
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.0052e480
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x531c92
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.00403360
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x531c92
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x531c8b
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 0x13
jne 0x531f08
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 0x531ef9
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 0x531ef9
mov dword [esp + 0x14], 0
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x531dba
call fcn.0052ec20
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 4]
cmp ecx, eax
jge 0x531dea
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x531ddf
mov dword [esp + 4], ecx
call fcn.0052e950
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 0x531dd4
mov ebx, dword [esp + 0x14]
mov dword [esp + 4], ebx
call fcn.0052e950
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
cmp esi, edx
jne 0x531dc5
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.00403360
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x531dc5
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 0x531d03
mov dword [0], eax
jmp 0x531d03
mov byte [esp + 0x94], 0
add esp, 0x88
ret
mov dword [0], eax
jmp 0x531d53
mov dword [0], eax
jmp 0x531d29
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x531eba
call fcn.0052ecb0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 4]
cmp ecx, eax
jge 0x531eea
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x531edf
mov dword [esp + 4], ecx
call fcn.0052edd0
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 0x531ed4
mov ebx, dword [esp + 0x18]
mov dword [esp + 4], ebx
call fcn.0052edd0
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
cmp esi, edx
jne 0x531ec5
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.00403360
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x531ec5
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 0x531e03
mov dword [0], eax
jmp 0x531e03
mov byte [esp + 0x94], 0
add esp, 0x88
ret
mov dword [0], eax
jmp 0x531e53
mov dword [0], eax
jmp 0x531e29
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 0x14
jne 0x531c9c
mov ebp, dword [ecx + 0x28]
cmp ebp, 0
jne 0x531f30
mov ebp, dword [edx + 0x28]
cmp ebp, 0
jne 0x531f30
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 0x16
ja 0x5320f1
cmp eax, 0x15
jne 0x532068
mov dword [esp], ecx
call fcn.0052ea50
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.0052ea50
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x532061
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.00403360
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x532061
mov eax, 1
cmp al, 0
je 0x532057
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.0052e480
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.0052e480
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x532057
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.00403360
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x532057
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x532050
xor eax, eax
jmp 0x531fcb
cmp eax, 0x16
jne 0x531c9c
mov dword [esp], ecx
call fcn.0052e480
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.0052e480
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 4]
mov edi, dword [esp + 8]
cmp esi, edx
jne 0x5320e7
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.00403360
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x5320e7
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x5320e0
cmp eax, 0x17
je 0x532071
cmp eax, 0x19
jne 0x531c9c
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 0x53212c
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 0x5322ce
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x38]
mov ebp, eax
mov esi, dword [ebx + 0x28]
cmp eax, esi
jae 0x5323cc
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 0x5323c5
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 0x5323be
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 0x532360
mov ebx, dword [esp + 0x28]
cmp ebx, 0
je 0x532359
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 0x5322fb
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
cmp ecx, eax
jne 0x5322ec
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.00452cd0
mov edx, dword [esp + 0x34]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x5322ec
mov ecx, dword [edx + 4]
mov ebx, dword [esp + 0x28]
mov ebp, dword [ebx + 4]
cmp ecx, ebp
je 0x532238
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cld
mov ecx, dword [edx]
mov dword [esp], ecx
call fcn.0052c2c0
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.0052c2c0
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 4]
mov eax, dword [esp + 8]
cmp esi, eax
jne 0x5322dd
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.00452cd0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x5322dd
mov ebx, dword [esp + 0x34]
mov ecx, dword [ebx + 8]
mov ebx, dword [esp + 0x28]
mov ebp, dword [ebx + 8]
cmp ecx, ebp
je 0x5322bd
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 0x532145
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 0x532354
add ebp, 3
mov dword [esp + 0x48], ebx
cmp ebx, 0
je 0x532350
cmp byte [0x6d9e38], 0
jne 0x53233a
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 0x5321cd
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040f3d0
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x54]
jmp 0x532323
mov dword [ebx], eax
jmp 0x532318
mov dword [ebp], eax
jmp 0x53230c
mov dword [ebx], eax
jmp 0x5321b3
mov edx, ebp
lea ebx, [esp + 0x58]
mov edi, ebx
mov dword [esp + 0x50], ebp
cmp ebp, 0
je 0x5323b9
add ebp, 3
mov dword [esp + 0x4c], ebx
cmp ebx, 0
je 0x5323b5
cmp byte [0x6d9e38], 0
jne 0x53239f
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 0x5321a6
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040f3d0
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
jmp 0x532388
mov dword [ebx], eax
jmp 0x53237d
mov dword [ebp], eax
jmp 0x532371
mov dword [ecx], eax
jmp 0x53218c
call fcn.00428880
ud2
call fcn.00428880
ud2
call fcn.00450fb0
jmp fcn.005319b0