Function at 0x52af70
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 0x52b993
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 0x52afc3
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 0x52aff0
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 1
jb 0x52b009
cmp eax, 0x10
ja 0x52b009
mov byte [esp + 0x94], 1
add esp, 0x88
ret
cmp eax, 0x18
je 0x52affa
cmp eax, 0x1a
je 0x52affa
cmp eax, 0x14
ja 0x52b4ff
cmp eax, 0x12
ja 0x52b26b
cmp eax, 0x11
jne 0x52b0f8
mov dword [esp], ecx
call fcn.00527a40
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.00527a40
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x52b0f4
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.00402470
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b0f4
mov eax, 1
cmp al, 0
je 0x52b0ea
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.005280c0
mov ebx, dword [esp + 4]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.005280c0
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x24]
cmp ebx, eax
jne 0x52b0ea
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x52b0e3
xor eax, eax
jmp 0x52b0a4
cmp eax, 0x12
jne 0x52b25c
mov dword [esp], edx
call fcn.00527910
mov ebx, dword [esp + 4]
cmp ebx, 3
jne 0x52b199
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.00527a40
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.00527a40
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x52b199
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.00402470
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b199
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.00527910
mov ebx, dword [esp + 4]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.00527910
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x1c]
cmp ebx, eax
jne 0x52b252
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.00527a40
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.00527a40
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x52b252
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.00402470
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b252
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x52b24b
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 0x13
jne 0x52b4c8
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 0x52b4b9
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 0x52b4b9
mov dword [esp + 0x14], 0
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x52b37a
call fcn.005281e0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 4]
cmp ecx, eax
jge 0x52b3aa
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x52b39f
mov dword [esp + 4], ecx
call fcn.00527f10
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 0x52b394
mov ebx, dword [esp + 0x14]
mov dword [esp + 4], ebx
call fcn.00527f10
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
cmp esi, edx
jne 0x52b385
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.00402470
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b385
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 0x52b2c3
mov dword [0], eax
jmp 0x52b2c3
mov byte [esp + 0x94], 0
add esp, 0x88
ret
mov dword [0], eax
jmp 0x52b313
mov dword [0], eax
jmp 0x52b2e9
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x52b47a
call fcn.00528270
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 4]
cmp ecx, eax
jge 0x52b4aa
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x52b49f
mov dword [esp + 4], ecx
call fcn.00528390
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 0x52b494
mov ebx, dword [esp + 0x18]
mov dword [esp + 4], ebx
call fcn.00528390
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
cmp esi, edx
jne 0x52b485
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.00402470
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b485
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 0x52b3c3
mov dword [0], eax
jmp 0x52b3c3
mov byte [esp + 0x94], 0
add esp, 0x88
ret
mov dword [0], eax
jmp 0x52b413
mov dword [0], eax
jmp 0x52b3e9
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 0x14
jne 0x52b25c
mov ebp, dword [ecx + 0x28]
cmp ebp, 0
jne 0x52b4f0
mov ebp, dword [edx + 0x28]
cmp ebp, 0
jne 0x52b4f0
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 0x16
ja 0x52b6b1
cmp eax, 0x15
jne 0x52b628
mov dword [esp], ecx
call fcn.00528010
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.00528010
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x52b621
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.00402470
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b621
mov eax, 1
cmp al, 0
je 0x52b617
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.00527a40
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.00527a40
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x52b617
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.00402470
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b617
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x52b610
xor eax, eax
jmp 0x52b58b
cmp eax, 0x16
jne 0x52b25c
mov dword [esp], ecx
call fcn.00527a40
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.00527a40
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 4]
mov edi, dword [esp + 8]
cmp esi, edx
jne 0x52b6a7
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.00402470
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b6a7
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x52b6a0
cmp eax, 0x17
je 0x52b631
cmp eax, 0x19
jne 0x52b25c
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 0x52b6ec
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 0x52b88e
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x38]
mov ebp, eax
mov esi, dword [ebx + 0x28]
cmp eax, esi
jae 0x52b98c
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 0x52b985
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 0x52b97e
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 0x52b920
mov ebx, dword [esp + 0x28]
cmp ebx, 0
je 0x52b919
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 0x52b8bb
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
cmp ecx, eax
jne 0x52b8ac
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.00451c80
mov edx, dword [esp + 0x34]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b8ac
mov ecx, dword [edx + 4]
mov ebx, dword [esp + 0x28]
mov ebp, dword [ebx + 4]
cmp ecx, ebp
je 0x52b7f8
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cld
mov ecx, dword [edx]
mov dword [esp], ecx
call fcn.00525880
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.00525880
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 4]
mov eax, dword [esp + 8]
cmp esi, eax
jne 0x52b89d
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.00451c80
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b89d
mov ebx, dword [esp + 0x34]
mov ecx, dword [ebx + 8]
mov ebx, dword [esp + 0x28]
mov ebp, dword [ebx + 8]
cmp ecx, ebp
je 0x52b87d
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 0x52b705
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 0x52b914
add ebp, 3
mov dword [esp + 0x48], ebx
cmp ebx, 0
je 0x52b910
cmp byte [0x6cfdd8], 0
jne 0x52b8fa
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 0x52b78d
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040e4e0
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x54]
jmp 0x52b8e3
mov dword [ebx], eax
jmp 0x52b8d8
mov dword [ebp], eax
jmp 0x52b8cc
mov dword [ebx], eax
jmp 0x52b773
mov edx, ebp
lea ebx, [esp + 0x58]
mov edi, ebx
mov dword [esp + 0x50], ebp
cmp ebp, 0
je 0x52b979
add ebp, 3
mov dword [esp + 0x4c], ebx
cmp ebx, 0
je 0x52b975
cmp byte [0x6cfdd8], 0
jne 0x52b95f
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 0x52b766
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040e4e0
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
jmp 0x52b948
mov dword [ebx], eax
jmp 0x52b93d
mov dword [ebp], eax
jmp 0x52b931
mov dword [ecx], eax
jmp 0x52b74c
call fcn.00427990
ud2
call fcn.00427990
ud2
call fcn.0044ff60
jmp fcn.0052af70