Function at 0x52af10
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 0x52b933
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 0x52af63
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 0x52af90
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 1
jb 0x52afa9
cmp eax, 0x10
ja 0x52afa9
mov byte [esp + 0x94], 1
add esp, 0x88
ret
cmp eax, 0x18
je 0x52af9a
cmp eax, 0x1a
je 0x52af9a
cmp eax, 0x14
ja 0x52b49f
cmp eax, 0x12
ja 0x52b20b
cmp eax, 0x11
jne 0x52b098
mov dword [esp], ecx
call fcn.005279e0
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.005279e0
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x52b094
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.004023a0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b094
mov eax, 1
cmp al, 0
je 0x52b08a
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.00528060
mov ebx, dword [esp + 4]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.00528060
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x24]
cmp ebx, eax
jne 0x52b08a
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x52b083
xor eax, eax
jmp 0x52b044
cmp eax, 0x12
jne 0x52b1fc
mov dword [esp], edx
call fcn.005278b0
mov ebx, dword [esp + 4]
cmp ebx, 3
jne 0x52b139
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.005279e0
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.005279e0
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x52b139
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.004023a0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b139
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
call fcn.005278b0
mov ebx, dword [esp + 4]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.005278b0
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x1c]
cmp ebx, eax
jne 0x52b1f2
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.005279e0
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.005279e0
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x52b1f2
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.004023a0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b1f2
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x52b1eb
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 0x13
jne 0x52b468
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 0x52b459
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 0x52b459
mov dword [esp + 0x14], 0
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x52b31a
call fcn.00528180
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 4]
cmp ecx, eax
jge 0x52b34a
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x52b33f
mov dword [esp + 4], ecx
call fcn.00527eb0
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 0x52b334
mov ebx, dword [esp + 0x14]
mov dword [esp + 4], ebx
call fcn.00527eb0
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
cmp esi, edx
jne 0x52b325
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.004023a0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b325
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 0x52b263
mov dword [0], eax
jmp 0x52b263
mov byte [esp + 0x94], 0
add esp, 0x88
ret
mov dword [0], eax
jmp 0x52b2b3
mov dword [0], eax
jmp 0x52b289
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x52b41a
call fcn.00528210
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 4]
cmp ecx, eax
jge 0x52b44a
mov ebx, dword [esp + 0x3c]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x52b43f
mov dword [esp + 4], ecx
call fcn.00528330
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 0x52b434
mov ebx, dword [esp + 0x18]
mov dword [esp + 4], ebx
call fcn.00528330
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
cmp esi, edx
jne 0x52b425
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.004023a0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b425
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 0x52b363
mov dword [0], eax
jmp 0x52b363
mov byte [esp + 0x94], 0
add esp, 0x88
ret
mov dword [0], eax
jmp 0x52b3b3
mov dword [0], eax
jmp 0x52b389
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 0x14
jne 0x52b1fc
mov ebp, dword [ecx + 0x28]
cmp ebp, 0
jne 0x52b490
mov ebp, dword [edx + 0x28]
cmp ebp, 0
jne 0x52b490
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cmp eax, 0x16
ja 0x52b651
cmp eax, 0x15
jne 0x52b5c8
mov dword [esp], ecx
call fcn.00527fb0
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.00527fb0
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x52b5c1
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.004023a0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b5c1
mov eax, 1
cmp al, 0
je 0x52b5b7
mov ebx, dword [esp + 0x8c]
mov dword [esp], ebx
call fcn.005279e0
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.005279e0
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
cmp edi, edx
jne 0x52b5b7
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.004023a0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b5b7
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x52b5b0
xor eax, eax
jmp 0x52b52b
cmp eax, 0x16
jne 0x52b1fc
mov dword [esp], ecx
call fcn.005279e0
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.005279e0
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 4]
mov edi, dword [esp + 8]
cmp esi, edx
jne 0x52b647
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.004023a0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b647
mov byte [esp + 0x94], 1
add esp, 0x88
ret
mov byte [esp + 0x94], 0
jmp 0x52b640
cmp eax, 0x17
je 0x52b5d1
cmp eax, 0x19
jne 0x52b1fc
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 0x52b68c
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 0x52b82e
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x38]
mov ebp, eax
mov esi, dword [ebx + 0x28]
cmp eax, esi
jae 0x52b92c
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 0x52b925
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 0x52b91e
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 0x52b8c0
mov ebx, dword [esp + 0x28]
cmp ebx, 0
je 0x52b8b9
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 0x52b85b
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
cmp ecx, eax
jne 0x52b84c
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.00451bb0
mov edx, dword [esp + 0x34]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b84c
mov ecx, dword [edx + 4]
mov ebx, dword [esp + 0x28]
mov ebp, dword [ebx + 4]
cmp ecx, ebp
je 0x52b798
mov byte [esp + 0x94], 0
add esp, 0x88
ret
cld
mov ecx, dword [edx]
mov dword [esp], ecx
call fcn.00525820
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.00525820
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 4]
mov eax, dword [esp + 8]
cmp esi, eax
jne 0x52b83d
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.00451bb0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x52b83d
mov ebx, dword [esp + 0x34]
mov ecx, dword [ebx + 8]
mov ebx, dword [esp + 0x28]
mov ebp, dword [ebx + 8]
cmp ecx, ebp
je 0x52b81d
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 0x52b6a5
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 0x52b8b4
add ebp, 3
mov dword [esp + 0x48], ebx
cmp ebx, 0
je 0x52b8b0
cmp byte [0x6cfdf8], 0
jne 0x52b89a
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 0x52b72d
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040e410
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x54]
jmp 0x52b883
mov dword [ebx], eax
jmp 0x52b878
mov dword [ebp], eax
jmp 0x52b86c
mov dword [ebx], eax
jmp 0x52b713
mov edx, ebp
lea ebx, [esp + 0x58]
mov edi, ebx
mov dword [esp + 0x50], ebp
cmp ebp, 0
je 0x52b919
add ebp, 3
mov dword [esp + 0x4c], ebx
cmp ebx, 0
je 0x52b915
cmp byte [0x6cfdf8], 0
jne 0x52b8ff
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 0x52b706
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040e410
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
jmp 0x52b8e8
mov dword [ebx], eax
jmp 0x52b8dd
mov dword [ebp], eax
jmp 0x52b8d1
mov dword [ecx], eax
jmp 0x52b6ec
call fcn.004278c0
ud2
call fcn.004278c0
ud2
call fcn.0044fe90
jmp fcn.0052af10