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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x38]
cmp eax, dword [ecx + 8]
jbe 0x535a34
sub esp, 0xb8
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x1c]
test edx, edx
je 0x5359b8
lea ebx, [eax + 0x24]
test byte [ebx], al
mov ebp, dword [esp + 0xc0]
mov esi, dword [ebp + 8]
mov edi, dword [ebp]
mov ebp, dword [ebp + 4]
cmp esi, 5
jb 0x535a2d
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xc4]
add ecx, 5
cmp ecx, ebp
ja 0x535a2d
mov dword [esp + 0x84], ebp
mov edx, dword [edx + 0x10]
mov dword [esp + 0x80], edx
mov edx, dword [eax + 0x5c]
mov ebp, dword [eax + 0x64]
mov eax, dword [eax + 0x60]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 8
mov dword [esp + 0x18], 8
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], 5
mov dword [esp + 0x24], esi
sub esi, ecx
mov eax, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ecx
lea edx, [edi + esi]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x84]
sub edx, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
call eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x40]
mov dword [esp + 0xa0], edx
mov ebx, dword [esp + 0xc0]
mov ebp, dword [ebx + 4]
mov dword [esp + 0x84], ebp
mov dword [esp], ebx
lea esi, [eax + ebp]
mov dword [esp + 4], esi
call fcn.00535a40
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov ebx, dword [eax]
mov ebp, dword [esp + 0x84]
cmp ebp, edx
ja 0x535a26
sub ecx, ebp
neg ecx
sar ecx, 0x1f
and ecx, ebp
add ecx, ebx
sub edx, ebp
mov ebx, dword [esp + 0x60]
cmp edx, ebx
jle 0x5359ad
mov edx, ebx
mov ebp, dword [esp + 0xa0]
cmp ecx, ebp
je 0x535437
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call fcn.0044be80
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xbc]
mov dword [edx + 0x60], ecx
mov ecx, dword [esp + 0x64]
mov dword [edx + 0x64], ecx
mov ecx, dword [0x7db370]
test ecx, ecx
jne 0x535999
mov eax, dword [esp + 0xa0]
mov dword [edx + 0x5c], eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 4]
mov ebp, dword [eax]
cmp ebx, 5
jb 0x535a1f
add ecx, 0xfffffffb
mov esi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 5
add ecx, ebp
mov ebp, dword [edx + 0x18]
mov edi, dword [edx + 0x14]
test edi, edi
je 0x53551f
je 0x535a05
mov dword [esp + 0x84], esi
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], edi
mov dword [esp + 0xb4], ebp
lea eax, [0x5e76e0]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
call fcn.00407950
mov eax, dword [esp + 0x7c]
add eax, 0xfffffffb
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
movzx ebx, byte [esp + 0x14]
test bl, bl
je 0x535576
mov edx, dword [edx + 0x10]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov ebp, dword [esp + 0x84]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebp
mov dword [esp], ecx
call edx
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp edx, 3
jbe 0x5359c6
add edx, 0xfffffffb
mov ebx, edx
sar edx, 8
mov byte [ecx + 3], dl
mov ecx, dword [eax + 4]
mov eax, dword [eax]
cmp ecx, 4
jbe 0x5359bf
mov byte [eax + 4], bl
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
call fcn.005346a0
mov byte [esp + 0xc8], 1
mov byte [esp + 0xc9], 0
add esp, 0xb8
ret
mov dword [esp + 0x54], eax
lea eax, [0x5fa640]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xb4]
mov dword [esp + 8], ecx
call fcn.00407950
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x14]
test dl, dl
je 0x53576d
mov dword [esp + 0xac], eax
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0xc0]
mov ebx, dword [edx + 4]
mov dword [esp + 0x84], ebx
mov ebp, dword [ecx + 0x18]
mov dword [esp], eax
call ebp
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc0]
mov dword [esp], ecx
mov edx, dword [esp + 0x84]
add eax, edx
mov dword [esp + 4], eax
call fcn.00535a40
mov eax, dword [esp + 0x84]
add eax, 0xfffffffb
mov ecx, dword [esp + 0xc4]
sub eax, ecx
mov edx, dword [esp + 0xc0]
mov ebx, dword [edx + 8]
mov ebp, dword [edx + 4]
mov esi, dword [edx]
lea edi, [ecx + 5]
cmp edi, 5
jb 0x5359fe
cmp edi, ebx
ja 0x5359fe
lea edx, [ebx - 5]
mov dword [esp + 0x5c], edx
neg edx
sar edx, 0x1f
and edx, 5
add edx, esi
test ecx, ecx
jne 0x535748
mov ecx, dword [esp + 0xbc]
lea edx, [ecx + 0x24]
test byte [edx], al
mov dword [esp + 0x90], eax
mov eax, 8
mov dword [esp + 0x5c], eax
mov eax, 8
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x90]
cmp edi, ebp
ja 0x5359f7
sub ebx, edi
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, edi
add ebx, esi
cmp eax, ebp
ja 0x5359f0
lea esi, [ecx + 0x30]
mov dword [esp + 0xb0], esi
test byte [esi], al
lea edi, [ecx + 0x24]
test byte [edi], al
mov edi, dword [ecx + 0x28]
mov esi, dword [ecx + 0x24]
mov dword [ecx + 0x30], esi
mov dword [ecx + 0x34], edi
mov esi, dword [esp + 0xc0]
mov edi, dword [esi + 8]
mov esi, dword [esi]
cmp edi, 3
jb 0x5359e9
lea edi, [ecx + 0x38]
cmp esi, edi
je 0x5356d8
movzx edi, word [esi]
movzx esi, byte [esi + 2]
mov word [ecx + 0x38], di
xchg esi, eax
mov byte [ecx + 0x3a], al
xchg esi, eax
mov esi, eax
sar eax, 8
mov byte [ecx + 0x3b], al
xchg esi, eax
mov byte [ecx + 0x3c], al
xchg esi, eax
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x1c]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebp
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 0xd
mov dword [esp + 0x30], 0xd
mov edx, dword [esp + 0xac]
mov dword [esp], edx
call eax
jmp 0x53551f
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x88]
jmp 0x535672
lea eax, [0x5ef600]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
call fcn.00407950
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0x10]
test cl, cl
je 0x535a05
mov dword [esp + 0x74], eax
mov dword [esp + 0xa8], edx
mov ecx, dword [eax + 0x10]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0xc4]
test ecx, ecx
jle 0x535982
mov edx, dword [esp + 0x84]
cmp ecx, edx
ja 0x5359e2
mov eax, dword [esp + 0x74]
mov ebx, dword [eax + 0x18]
mov ebp, dword [esp + 0x9c]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0xa8]
mov dword [esp], esi
call ebx
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x54]
cmp eax, ecx
ja 0x5359db
sub ecx, eax
mov edx, dword [esp + 0x84]
sub edx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, eax
mov ebp, dword [esp + 0x9c]
add edx, ebp
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], eax
call fcn.00535150
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x98], ebx
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x6c], ebp
mov esi, dword [esp + 0x20]
mov dword [esp + 0x68], esi
mov edi, dword [esp + 0xc0]
mov dword [esp], edi
mov ebp, dword [esp + 0xc4]
lea eax, [edx + ebp]
lea eax, [esi + eax + 5]
mov dword [esp + 4], eax
call fcn.00535a40
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov ebx, dword [eax]
mov ebp, dword [esp + 0xc4]
lea esi, [ebp + 5]
cmp esi, edx
ja 0x5359d4
mov eax, dword [esp + 0x74]
mov ebp, dword [eax + 0x14]
sub ecx, esi
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, esi
add ecx, ebx
mov dword [esp + 4], ecx
sub edx, esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xa8]
mov dword [esp], edx
call ebp
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov ebx, dword [eax + 8]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0x4c]
lea ebp, [esi + ebp + 5]
cmp ebp, ecx
ja 0x5359cd
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0x14]
sub ebx, ebp
mov esi, ebx
neg ebx
sar ebx, 0x1f
and ebx, ebp
add edx, ebx
mov dword [esp + 4], edx
sub ecx, ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp], ecx
call eax
jmp 0x53551f
mov ebx, dword [esp + 0x84]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x9c]
jmp 0x535835
lea edi, [edx + 0x5c]
mov eax, dword [esp + 0xa0]
call fcn.0044b680
jmp 0x535464
mov ebx, edx
mov edx, dword [esp + 0x60]
jmp 0x53541c
mov edx, eax
jmp 0x535464
call fcn.004258a0
ud2
call fcn.004258a0
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
lea eax, [0x5dfce0]
mov dword [esp], eax
lea eax, [0x65e3e8]
mov dword [esp + 4], eax
call fcn.00426780
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.004259a0
ud2
call fcn.00449f20
jmp fcn.005352a0