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

Disassembly:
mov ecx, dword [0x6cfe90]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x50]
cmp eax, dword [ecx + 8]
jbe 0x523270
sub esp, 0xd0
mov edx, dword [esp + 0xd4]
mov ebx, dword [edx + 0x80]
lea ebp, [ebx + 1]
mov esi, dword [edx + 0x84]
mov edi, dword [edx + 0x88]
nop
mov dword [edx + 0x80], ebp
inc dword [edx + 0x88]
mov ebp, dword [edx + 0x64]
dec ebp
mov dword [edx + 0x64], ebp
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp ecx, eax
jbe 0x52326a
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + eax]
test cl, 0x80
jne 0x521e1f
mov ecx, 1
jmp 0x521e68
mov byte [esp + 0x29], cl
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x521e32
mov ecx, 2
jmp 0x521e68
mov ecx, edi
movzx edi, byte [esp + 0x29]
and edi, 0xfffffff0
xchg edi, eax
cmp al, 0xe0
xchg edi, eax
jne 0x521e4c
mov edi, ecx
mov ecx, 3
jmp 0x521e68
movzx edi, byte [esp + 0x29]
and edi, 0xfffffff8
xchg edi, eax
cmp al, 0xf0
xchg edi, eax
jne 0x521e64
mov edi, ecx
mov ecx, 4
jmp 0x521e68
mov edi, ecx
xor ecx, ecx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], esi
mov dword [esp + 0x64], ebx
add eax, ecx
mov dword [edx + 0x60], eax
test ebp, ebp
jg 0x521ead
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x52239b
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp ecx, eax
jbe 0x523265
mov ebp, dword [edx + 0x54]
movzx ebp, byte [ebp + eax]
xchg ebp, eax
cmp al, 0x2b
xchg ebp, eax
jne 0x521ed1
mov eax, 1
jmp 0x521ee1
xchg ebp, eax
cmp al, 0x2d
xchg ebp, eax
jne 0x522102
mov eax, 0xffffffff
nop
inc dword [edx + 0x80]
inc dword [edx + 0x88]
mov ebp, dword [edx + 0x64]
dec ebp
mov dword [edx + 0x64], ebp
mov ecx, dword [edx + 0x58]
mov edi, dword [edx + 0x60]
cmp ecx, edi
jbe 0x52325e
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + edi]
test cl, 0x80
jne 0x521f16
mov ecx, 1
jmp 0x521f5f
mov byte [esp + 0x28], cl
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x521f29
mov ecx, 2
jmp 0x521f5f
mov ecx, esi
movzx esi, byte [esp + 0x28]
and esi, 0xfffffff0
xchg esi, eax
cmp al, 0xe0
xchg esi, eax
jne 0x521f43
mov esi, ecx
mov ecx, 3
jmp 0x521f5f
movzx esi, byte [esp + 0x28]
and esi, 0xfffffff8
xchg esi, eax
cmp al, 0xf0
xchg esi, eax
jne 0x521f5b
mov esi, ecx
mov ecx, 4
jmp 0x521f5f
mov esi, ecx
xor ecx, ecx
add edi, ecx
mov dword [edx + 0x60], edi
test ebp, ebp
jg 0x521f9c
mov dword [esp + 0x50], eax
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x5220f3
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x68]
mov ecx, dword [edx + 0x58]
mov ebp, dword [edx + 0x60]
cmp ebp, ecx
jae 0x523257
mov edi, dword [edx + 0x54]
movzx ebp, byte [edi + ebp]
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jb 0x5220e8
xchg ebp, eax
cmp al, 0x39
xchg ebp, eax
ja 0x5220e4
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
je 0x52205e
nop
inc dword [edx + 0x80]
inc dword [edx + 0x88]
dec dword [edx + 0x64]
mov ecx, dword [edx + 0x58]
mov edi, dword [edx + 0x60]
cmp edi, ecx
jae 0x523250
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + edi]
test cl, 0x80
jne 0x522003
mov ecx, 1
jmp 0x52204c
mov byte [esp + 0x27], cl
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x522016
mov ecx, 2
jmp 0x52204c
mov ecx, esi
movzx esi, byte [esp + 0x27]
and esi, 0xfffffff0
xchg esi, eax
cmp al, 0xe0
xchg esi, eax
jne 0x522030
mov esi, ecx
mov ecx, 3
jmp 0x52204c
movzx esi, byte [esp + 0x27]
and esi, 0xfffffff8
xchg esi, eax
cmp al, 0xf0
xchg esi, eax
jne 0x522048
mov esi, ecx
mov ecx, 4
jmp 0x52204c
mov esi, ecx
xor ecx, ecx
xchg ebp, eax
movzx eax, al
xchg ebp, eax
add edi, ecx
mov dword [edx + 0x60], edi
add ebp, 0xffffffd0
jmp 0x5220ea
nop
mov dword [edx], 3
mov dword [edx + 0x24], 0x1d
mov eax, dword [0x6cff38]
test eax, eax
je 0x522080
mov eax, dword [edx + 0x20]
call fcn.00464ab0
mov dword [edi], eax
lea eax, [0x583528]
mov dword [edx + 0x20], eax
mov dword [edx + 0x28], ebx
mov dword [edx + 0x2c], esi
mov eax, dword [esp + 0x6c]
mov dword [edx + 0x30], eax
mov dword [edx + 8], 0x29
mov eax, dword [0x6cff38]
test eax, eax
je 0x5220b1
mov eax, dword [edx + 4]
call fcn.00464ab0
mov dword [edi], eax
lea eax, [0x586a9b]
mov dword [edx + 4], eax
mov eax, dword [edx + 0x84]
mov ecx, dword [edx + 0x88]
mov ebx, dword [edx + 0x80]
mov dword [edx + 0x14], ebx
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], ecx
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
xor ebp, ebp
jmp 0x5220ea
xor ebp, ebp
mov edi, dword [esp + 0x6c]
jmp 0x522347
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jb 0x522343
xchg ebp, eax
cmp al, 0x39
xchg ebp, eax
ja 0x52233d
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
je 0x5222b7
nop
nop
inc dword [edx + 0x80]
inc dword [edx + 0x88]
mov eax, dword [edx + 0x64]
dec eax
mov dword [edx + 0x64], eax
mov ecx, dword [edx + 0x58]
mov edi, dword [edx + 0x60]
cmp edi, ecx
jae 0x523249
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + edi]
test cl, 0x80
jne 0x522159
mov ecx, 1
jmp 0x5221a2
mov byte [esp + 0x26], cl
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x52216c
mov ecx, 2
jmp 0x5221a2
mov ecx, esi
movzx esi, byte [esp + 0x26]
and esi, 0xfffffff0
xchg esi, eax
cmp al, 0xe0
xchg esi, eax
jne 0x522186
mov esi, ecx
mov ecx, 3
jmp 0x5221a2
movzx esi, byte [esp + 0x26]
and esi, 0xfffffff8
xchg esi, eax
cmp al, 0xf0
xchg esi, eax
jne 0x52219e
mov esi, ecx
mov ecx, 4
jmp 0x5221a2
mov esi, ecx
xor ecx, ecx
add edi, ecx
mov dword [edx + 0x60], edi
test eax, eax
jg 0x5221e2
xchg ebp, eax
mov byte [esp + 0x2b], al
xchg ebp, eax
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x5222a8
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
movzx ebp, byte [esp + 0x2b]
mov esi, dword [esp + 0x68]
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp eax, ecx
jae 0x523244
mov edi, dword [edx + 0x54]
movzx edi, byte [edi + eax]
xchg edi, eax
cmp al, 0x2b
xchg edi, eax
jne 0x522205
mov eax, 1
jmp 0x522215
xchg edi, eax
cmp al, 0x2d
xchg edi, eax
jne 0x522295
mov eax, 0xffffffff
inc dword [edx + 0x80]
inc dword [edx + 0x88]
dec dword [edx + 0x64]
mov ecx, dword [edx + 0x58]
mov edi, dword [edx + 0x60]
cmp edi, ecx
jae 0x52323d
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + edi]
test cl, 0x80
jne 0x522245
mov ecx, 1
jmp 0x52228e
mov byte [esp + 0x25], cl
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x522258
mov ecx, 2
jmp 0x52228e
mov ecx, esi
movzx esi, byte [esp + 0x25]
and esi, 0xfffffff0
xchg esi, eax
cmp al, 0xe0
xchg esi, eax
jne 0x522272
mov esi, ecx
mov ecx, 3
jmp 0x52228e
movzx esi, byte [esp + 0x25]
and esi, 0xfffffff8
xchg esi, eax
cmp al, 0xf0
xchg esi, eax
jne 0x52228a
mov esi, ecx
mov ecx, 4
jmp 0x52228e
mov esi, ecx
xor ecx, ecx
add edi, ecx
mov dword [edx + 0x60], edi
jmp 0x522297
xor eax, eax
xchg ebp, eax
movzx eax, al
xchg ebp, eax
add ebp, 0xffffffd0
mov edi, dword [esp + 0x6c]
jmp 0x522347
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
nop
mov dword [edx], 3
mov dword [edx + 0x24], 0x1d
mov eax, dword [0x6cff38]
test eax, eax
je 0x5222dd
mov eax, dword [edx + 0x20]
mov ecx, edi
call fcn.00464ab0
mov dword [edi], eax
mov edi, ecx
lea eax, [0x583528]
mov dword [edx + 0x20], eax
mov dword [edx + 0x28], ebx
mov dword [edx + 0x2c], esi
mov dword [edx + 0x30], edi
mov dword [edx + 8], 0x29
mov eax, dword [0x6cff38]
test eax, eax
je 0x52230a
mov eax, dword [edx + 4]
call fcn.00464ab0
mov dword [edi], eax
lea eax, [0x586a9b]
mov dword [edx + 4], eax
mov eax, dword [edx + 0x84]
mov ecx, dword [edx + 0x88]
mov ebx, dword [edx + 0x80]
mov dword [edx + 0x14], ebx
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], ecx
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
xor ebp, ebp
xor eax, eax
jmp 0x522347
xor ebp, ebp
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], ebp
mov ecx, dword [edx + 0x64]
test ecx, ecx
jg 0x5223ae
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x52238c
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
jmp 0x5223ae
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
mov edi, dword [esp + 0x6c]
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp eax, ecx
jae 0x523238
mov ecx, dword [edx + 0x54]
movzx eax, byte [ecx + eax]
cmp al, 0x20
je 0x5223d1
cmp al, 9
jne 0x52249c
nop
inc dword [edx + 0x80]
inc dword [edx + 0x88]
mov eax, dword [edx + 0x64]
dec eax
mov dword [edx + 0x64], eax
mov ecx, dword [edx + 0x58]
mov edi, dword [edx + 0x60]
cmp edi, ecx
jae 0x523231
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + edi]
test cl, 0x80
jne 0x522406
mov ecx, 1
jmp 0x52244f
mov byte [esp + 0x24], cl
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x522419
mov ecx, 2
jmp 0x52244f
mov ecx, esi
movzx esi, byte [esp + 0x24]
and esi, 0xfffffff0
xchg esi, eax
cmp al, 0xe0
xchg esi, eax
jne 0x522433
mov esi, ecx
mov ecx, 3
jmp 0x52244f
movzx esi, byte [esp + 0x24]
and esi, 0xfffffff8
xchg esi, eax
cmp al, 0xf0
xchg esi, eax
jne 0x52244b
mov esi, ecx
mov ecx, 4
jmp 0x52244f
mov esi, ecx
xor ecx, ecx
add edi, ecx
mov dword [edx + 0x60], edi
test eax, eax
jg 0x5223aa
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x52248d
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x68]
jmp 0x5223aa
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
cmp al, 0x23
je 0x523031
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp ecx, eax
jbe 0x523024
mov edi, dword [edx + 0x54]
movzx esi, byte [edi + eax]
xchg esi, eax
cmp al, 0xd
xchg esi, eax
je 0x5225c4
xchg esi, eax
cmp al, 0xa
xchg esi, eax
jne 0x5224d6
xchg esi, eax
cmp al, 0xd
xchg esi, eax
jmp 0x5225c4
xchg esi, eax
cmp al, 0xc2
xchg esi, eax
jne 0x522503
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x52301d
lea ebx, [edi + eax + 1]
cmp byte [ebx], 0x85
jne 0x5224ff
xchg esi, eax
cmp al, 0xd
xchg esi, eax
mov ebx, dword [esp + 0x64]
jmp 0x5225c4
mov ebx, dword [esp + 0x64]
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x5225b5
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x523016
lea ebp, [edi + eax + 1]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x522560
lea edx, [eax + 2]
cmp ecx, edx
jbe 0x52300f
lea edx, [edi + eax + 2]
cmp byte [edx], 0xa8
jne 0x522552
xchg esi, eax
cmp al, 0xd
xchg esi, eax
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5225c4
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
mov edx, dword [esp + 0xd4]
jmp 0x522565
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x5225ad
cmp ecx, ebx
jbe 0x523008
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x5225a3
lea ebx, [eax + 2]
cmp ecx, ebx
jbe 0x523001
lea ebx, [edi + eax + 2]
cmp byte [ebx], 0xa9
jne 0x522599
xchg esi, eax
cmp al, 0xd
xchg esi, eax
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5225c4
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5225b5
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5225b5
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x5227fb
xchg esi, eax
cmp al, 0xd
xchg esi, eax
je 0x522689
xchg esi, eax
cmp al, 0xa
xchg esi, eax
je 0x522689
xchg esi, eax
cmp al, 0xc2
xchg esi, eax
jne 0x5225fd
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x522ffa
lea ebx, [edi + eax + 1]
cmp byte [ebx], 0x85
jne 0x5225f9
mov ebx, dword [esp + 0x64]
jmp 0x522689
mov ebx, dword [esp + 0x64]
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x5226f3
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x522ff3
lea ebp, [edi + eax + 1]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x522653
xchg ebp, eax
mov byte [esp + 0x2a], al
xchg ebp, eax
lea ebp, [eax + 2]
cmp ecx, ebp
jbe 0x522fec
lea ebp, [edi + eax + 2]
cmp byte [ebp], 0xa8
jne 0x522647
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x522689
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
movzx ebp, byte [esp + 0x2a]
jmp 0x522658
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x5226eb
cmp ecx, ebx
jbe 0x522fe5
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x5226e1
lea ebx, [eax + 2]
cmp ecx, ebx
jbe 0x522fde
lea eax, [edi + eax + 2]
cmp byte [eax], 0xa9
jne 0x5226d7
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
cmp dword [edx + 0x64], 2
jge 0x5226af
mov dword [esp], edx
mov dword [esp + 4], 2
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x5226c8
mov edx, dword [esp + 0xd4]
mov dword [esp], edx
call fcn.0051ae70
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5226f3
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5226f3
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5226f3
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
mov eax, dword [edx + 0x88]
mov ecx, dword [edx + 0x80]
mov esi, dword [edx + 0x84]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], 0
test ebp, ebp
jle 0x522733
mov eax, dword [edx + 0xac]
test eax, eax
jl 0x52272f
add eax, ebp
mov dword [esp + 0x3c], eax
jmp 0x522733
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp], edx
lea eax, [esp + 0x3c]
mov dword [esp + 4], eax
lea ecx, [esp + 0x70]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x10], ecx
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x14], ebp
lea esi, [esp + 0x44]
mov dword [esp + 0x18], esi
call fcn.00523280
movzx eax, byte [esp + 0x1c]
test al, al
je 0x5227ec
mov edx, dword [esp + 0xd4]
mov ebx, dword [edx + 0x64]
test ebx, ebx
jg 0x5227b6
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x5227dd
mov edx, dword [esp + 0xd4]
movzx ebx, byte [esp + 0xdc]
xor eax, eax
xor ecx, ecx
xor ebp, ebp
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x7c], eax
xor ebp, ebp
mov dword [esp + 0x2c], ebp
xor eax, eax
xor ebp, ebp
jmp 0x5228bb
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
nop
mov dword [edx], 3
mov dword [edx + 0x24], 0x1d
mov eax, dword [0x6cff38]
test eax, eax
je 0x52281d
mov eax, dword [edx + 0x20]
call fcn.00464ab0
mov dword [edi], eax
lea eax, [0x583528]
mov dword [edx + 0x20], eax
mov dword [edx + 0x28], ebx
mov eax, dword [esp + 0x68]
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0x6c]
mov dword [edx + 0x30], eax
mov dword [edx + 8], 0x2b
mov eax, dword [0x6cff38]
test eax, eax
je 0x522852
mov eax, dword [edx + 4]
call fcn.00464ab0
mov dword [edi], eax
lea eax, [0x587168]
mov dword [edx + 4], eax
mov eax, dword [edx + 0x84]
mov ecx, dword [edx + 0x88]
mov ebx, dword [edx + 0x80]
mov dword [edx + 0x14], ebx
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], ecx
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
movzx ebx, byte [esp + 0xdc]
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x80]
movzx eax, byte [esp + 0x23]
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x80], ebp
mov esi, dword [edx + 0x88]
cmp dword [esp + 0x3c], esi
jne 0x522bfa
mov esi, dword [edx + 0x58]
mov ebp, dword [edx + 0x60]
cmp esi, ebp
jbe 0x522fd5
mov esi, dword [edx + 0x54]
movzx ebp, byte [esi + ebp]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x522bf3
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
jne 0x522907
mov ebp, 1
jmp 0x522913
xchg ebp, eax
cmp al, 9
xchg ebp, eax
xchg ebp, ebx
sete bl
xchg ebp, ebx
test bl, bl
je 0x522923
mov eax, dword [esp + 0x80]
jmp 0x5229d8
test al, al
je 0x522933
mov eax, dword [esp + 0x80]
jmp 0x5229d8
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x522945
mov eax, dword [esp + 0x80]
jmp 0x5229d8
test ecx, ecx
je 0x5229d1
mov eax, dword [esp + 0x80]
cmp byte [eax], 0xa
jne 0x5229d8
mov ecx, dword [esp + 0x74]
test ecx, ecx
jne 0x5229c4
mov ecx, dword [esp + 0x2c]
inc ecx
cmp edi, ecx
jb 0x522970
mov ebp, dword [esp + 0x7c]
jmp 0x5229ba
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x557560]
mov dword [esp + 0x10], eax
call fcn.0044b670
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0xd4]
movzx ebx, byte [esp + 0xdc]
mov ebp, eax
mov eax, dword [esp + 0x80]
mov byte [ecx + ebp - 1], 0x20
jmp 0x522a66
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
jmp 0x522a66
mov eax, dword [esp + 0x80]
mov ebp, dword [esp + 0x2c]
lea esi, [ebp + ecx]
cmp edi, esi
jae 0x522a25
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
lea eax, [0x557560]
mov dword [esp + 0x10], eax
call fcn.0044b670
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], esi
mov edx, dword [esp + 0x7c]
lea ebx, [edx + ebp]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004653a0
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0xd4]
movzx ebx, byte [esp + 0xdc]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x74]
add ecx, esi
cmp edi, ecx
jb 0x522a74
mov esi, ecx
jmp 0x522aa6
mov dword [esp + 0x60], ecx
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
lea eax, [0x557560]
mov dword [esp + 0x10], eax
call fcn.0044b670
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x7c], ebp
mov eax, dword [esp + 0x74]
sub esi, eax
mov edx, dword [esp + 0x70]
lea ebx, [ebp + esi]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004653a0
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x60]
cmp edx, ecx
jae 0x522fce
mov ebx, dword [eax + 0x54]
movzx edx, byte [ebx + edx]
cmp dl, 0x20
jne 0x522b00
mov edx, 1
jmp 0x522b06
cmp dl, 9
sete dl
mov byte [esp + 0x23], dl
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
jmp 0x522dfb
mov ecx, dword [esp + 0x2c]
jmp 0x522b3a
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
jmp 0x522b3a
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
cmp dword [eax + 0x64], 2
jge 0x522b64
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x522f8b
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xc], ecx
call fcn.0051b270
mov eax, dword [esp + 0x10]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0xd4]
mov dword [esp], ebx
lea ebp, [esp + 0x3c]
mov dword [esp + 4], ebp
lea esi, [esp + 0x70]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x64]
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x10], edi
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x14], ebp
lea ebp, [esp + 0x44]
mov dword [esp + 0x18], ebp
call fcn.00523280
movzx eax, byte [esp + 0x1c]
test al, al
jne 0x522885
jmp 0x522f7c
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x50]
cmp eax, 0xffffffff
je 0x522c8b
mov edx, dword [esp + 0x2c]
lea esi, [edx + ecx]
cmp edi, esi
jae 0x522c53
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
lea eax, [0x557560]
mov dword [esp + 0x10], eax
call fcn.0044b670
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x7c]
add edx, eax
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
call fcn.004653a0
mov eax, dword [esp + 0x50]
movzx ebx, byte [esp + 0xdc]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x2c]
jmp 0x522c93
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x2c]
cmp eax, 1
jne 0x522d14
mov eax, dword [esp + 0x74]
add edx, eax
cmp edi, edx
jb 0x522ca6
mov eax, edx
jmp 0x522cd8
mov dword [esp + 0x5c], edx
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
lea eax, [0x557560]
mov dword [esp + 0x10], eax
call fcn.0044b670
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x7c], ecx
mov ebx, dword [esp + 0x74]
sub eax, ebx
mov ebp, dword [esp + 0x70]
add eax, ecx
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call fcn.004653a0
movzx ebx, byte [esp + 0xdc]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x7c], ecx
lea esi, [0x5b6b78]
mov eax, edi
lea edi, [esp + 0x88]
call fcn.0046510c
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], esi
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], eax
mov edi, dword [esp + 0xd8]
test byte [edi], al
mov eax, dword [0x6cff38]
test eax, eax
je 0x522dc6
lea eax, [0x56faa0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x88]
mov dword [esp + 8], eax
call fcn.004113a0
movzx ebx, byte [esp + 0xdc]
mov edi, dword [esp + 0xd8]
lea esi, [esp + 0x88]
call fcn.0046510c
test bl, bl
jne 0x522de1
mov eax, dword [esp + 0xd8]
mov byte [eax + 0x44], 5
mov byte [esp + 0xe0], 1
add esp, 0xd0
ret
mov edi, ebp
mov ecx, ebx
mov ebp, edx
movzx edx, byte [esp + 0x23]
mov ebx, dword [eax + 0x58]
mov esi, dword [eax + 0x60]
cmp ebx, esi
jbe 0x522fc5
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x7c], ebp
mov edx, dword [eax + 0x54]
movzx edi, byte [edx + esi]
xchg edi, eax
cmp al, 0xd
xchg edi, eax
je 0x522b3a
xchg edi, eax
cmp al, 0xa
xchg edi, eax
je 0x522b3a
xchg edi, eax
cmp al, 0xc2
xchg edi, eax
jne 0x522e55
lea ecx, [esi + 1]
cmp ebx, ecx
jbe 0x522fbc
lea ecx, [edx + esi + 1]
cmp byte [ecx], 0x85
je 0x522b1b
mov ecx, dword [esp + 0x2c]
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
jne 0x522eea
lea ecx, [esi + 1]
cmp ebx, ecx
jbe 0x522fb3
lea ebp, [edx + esi + 1]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x522ea0
lea eax, [esi + 2]
cmp ebx, eax
jbe 0x522fac
lea eax, [edx + esi + 2]
cmp byte [eax], 0xa8
je 0x522b21
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
mov eax, dword [esp + 0xd4]
jmp 0x522ea5
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
jne 0x522ee2
cmp ebx, ecx
jbe 0x522fa3
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x522ed8
lea ebp, [esi + 2]
cmp ebx, ebp
jbe 0x522f9a
lea ecx, [edx + esi + 2]
cmp byte [ecx], 0xa9
je 0x522b32
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
jmp 0x522eea
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
jmp 0x522eea
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
xchg edi, eax
test al, al
xchg edi, eax
je 0x522b3a
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
call fcn.0051b040
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0x64]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
test ecx, ecx
jg 0x522df0
mov dword [esp + 0x84], edx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], ebx
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x522f6d
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
jmp 0x522df0
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
mov eax, ebp
mov ecx, ebx
call fcn.00464b30
mov eax, ecx
mov ecx, ebx
call fcn.00464b30
mov ecx, ebx
call fcn.00464b30
mov eax, ecx
mov ecx, ebx
call fcn.00464b30
mov eax, ecx
mov ecx, ebx
call fcn.00464b30
mov eax, esi
mov ecx, ebx
call fcn.00464b30
mov eax, edx
call fcn.00464b30
mov eax, ebp
mov ecx, esi
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
mov eax, ebp
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
mov eax, edx
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
call fcn.00464b30
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp ecx, eax
jbe 0x52322c
mov edi, dword [edx + 0x54]
movzx esi, byte [edi + eax]
xchg esi, eax
cmp al, 0xd
xchg esi, eax
je 0x5231f7
xchg esi, eax
cmp al, 0xa
xchg esi, eax
je 0x5231f7
xchg esi, eax
cmp al, 0xc2
xchg esi, eax
jne 0x52307f
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x523225
lea ebx, [edi + eax + 1]
cmp byte [ebx], 0x85
je 0x5231c7
mov ebx, dword [esp + 0x64]
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x523114
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x52321e
lea ebp, [edi + eax + 1]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x5230ca
lea edx, [eax + 2]
cmp ecx, edx
jbe 0x523217
lea edx, [edi + eax + 2]
cmp byte [edx], 0xa8
je 0x5231cd
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
mov edx, dword [esp + 0xd4]
jmp 0x5230cf
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x52310c
cmp ecx, ebx
jbe 0x523210
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x523102
lea ebx, [eax + 2]
cmp ecx, ebx
jbe 0x523209
lea ebx, [edi + eax + 2]
cmp byte [ebx], 0xa9
je 0x5231de
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x523114
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x523114
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
xchg esi, eax
test al, al
xchg esi, eax
je 0x5231f7
nop
inc dword [edx + 0x80]
inc dword [edx + 0x88]
mov esi, dword [edx + 0x64]
dec esi
mov dword [edx + 0x64], esi
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp eax, ecx
jae 0x523204
mov edi, dword [edx + 0x54]
movzx edi, byte [edi + eax]
xchg edi, eax
test al, 0x80
xchg edi, eax
jne 0x523155
mov ecx, 1
jmp 0x52318c
mov ecx, edi
and edi, 0xffffffe0
xchg edi, eax
cmp al, 0xc0
xchg edi, eax
jne 0x523168
mov ecx, 2
jmp 0x52318c
mov edi, ecx
and ecx, 0xfffffff0
cmp cl, 0xe0
jne 0x523179
mov ecx, 3
jmp 0x52318c
and edi, 0xfffffff8
xchg edi, eax
cmp al, 0xf0
xchg edi, eax
jne 0x52318a
mov ecx, 4
jmp 0x52318c
xor ecx, ecx
lea edi, [ecx + eax]
mov dword [edx + 0x60], edi
test esi, esi
jg 0x523029
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x5231e8
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x523029
mov ebx, dword [esp + 0x64]
jmp 0x5231f7
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5231f7
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5231f7
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
jmp 0x5224a5
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
mov eax, edx
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
call fcn.00464b30
mov eax, edi
call fcn.00464b30
call fcn.00464b30
mov eax, edi
call fcn.00464b30
call fcn.00464b30
mov eax, edi
call fcn.00464b30
mov eax, edi
call fcn.00464b30
mov eax, ebp
call fcn.00464b30
mov eax, edi
call fcn.00464b30
call fcn.00464b30
call fcn.00464b30
nop
call fcn.004636b0
jmp fcn.00521db0