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

Disassembly:
mov ecx, dword [0x6d0e30]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x50]
cmp eax, dword [ecx + 8]
jbe 0x523630
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 0x52362a
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + eax]
test cl, 0x80
jne 0x5221df
mov ecx, 1
jmp 0x522228
mov byte [esp + 0x29], cl
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x5221f2
mov ecx, 2
jmp 0x522228
mov ecx, edi
movzx edi, byte [esp + 0x29]
and edi, 0xfffffff0
xchg edi, eax
cmp al, 0xe0
xchg edi, eax
jne 0x52220c
mov edi, ecx
mov ecx, 3
jmp 0x522228
movzx edi, byte [esp + 0x29]
and edi, 0xfffffff8
xchg edi, eax
cmp al, 0xf0
xchg edi, eax
jne 0x522224
mov edi, ecx
mov ecx, 4
jmp 0x522228
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 0x52226d
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x52275b
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 0x523625
mov ebp, dword [edx + 0x54]
movzx ebp, byte [ebp + eax]
xchg ebp, eax
cmp al, 0x2b
xchg ebp, eax
jne 0x522291
mov eax, 1
jmp 0x5222a1
xchg ebp, eax
cmp al, 0x2d
xchg ebp, eax
jne 0x5224c2
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 0x52361e
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + edi]
test cl, 0x80
jne 0x5222d6
mov ecx, 1
jmp 0x52231f
mov byte [esp + 0x28], cl
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x5222e9
mov ecx, 2
jmp 0x52231f
mov ecx, esi
movzx esi, byte [esp + 0x28]
and esi, 0xfffffff0
xchg esi, eax
cmp al, 0xe0
xchg esi, eax
jne 0x522303
mov esi, ecx
mov ecx, 3
jmp 0x52231f
movzx esi, byte [esp + 0x28]
and esi, 0xfffffff8
xchg esi, eax
cmp al, 0xf0
xchg esi, eax
jne 0x52231b
mov esi, ecx
mov ecx, 4
jmp 0x52231f
mov esi, ecx
xor ecx, ecx
add edi, ecx
mov dword [edx + 0x60], edi
test ebp, ebp
jg 0x52235c
mov dword [esp + 0x50], eax
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x5224b3
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 0x523617
mov edi, dword [edx + 0x54]
movzx ebp, byte [edi + ebp]
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jb 0x5224a8
xchg ebp, eax
cmp al, 0x39
xchg ebp, eax
ja 0x5224a4
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
je 0x52241e
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 0x523610
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + edi]
test cl, 0x80
jne 0x5223c3
mov ecx, 1
jmp 0x52240c
mov byte [esp + 0x27], cl
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x5223d6
mov ecx, 2
jmp 0x52240c
mov ecx, esi
movzx esi, byte [esp + 0x27]
and esi, 0xfffffff0
xchg esi, eax
cmp al, 0xe0
xchg esi, eax
jne 0x5223f0
mov esi, ecx
mov ecx, 3
jmp 0x52240c
movzx esi, byte [esp + 0x27]
and esi, 0xfffffff8
xchg esi, eax
cmp al, 0xf0
xchg esi, eax
jne 0x522408
mov esi, ecx
mov ecx, 4
jmp 0x52240c
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 0x5224aa
nop
mov dword [edx], 3
mov dword [edx + 0x24], 0x1d
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x522440
mov eax, dword [edx + 0x20]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x5835d5]
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 [0x6d0ed8]
test eax, eax
je 0x522471
mov eax, dword [edx + 4]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x586b70]
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 0x5224aa
xor ebp, ebp
mov edi, dword [esp + 0x6c]
jmp 0x522707
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jb 0x522703
xchg ebp, eax
cmp al, 0x39
xchg ebp, eax
ja 0x5226fd
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
je 0x522677
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 0x523609
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + edi]
test cl, 0x80
jne 0x522519
mov ecx, 1
jmp 0x522562
mov byte [esp + 0x26], cl
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x52252c
mov ecx, 2
jmp 0x522562
mov ecx, esi
movzx esi, byte [esp + 0x26]
and esi, 0xfffffff0
xchg esi, eax
cmp al, 0xe0
xchg esi, eax
jne 0x522546
mov esi, ecx
mov ecx, 3
jmp 0x522562
movzx esi, byte [esp + 0x26]
and esi, 0xfffffff8
xchg esi, eax
cmp al, 0xf0
xchg esi, eax
jne 0x52255e
mov esi, ecx
mov ecx, 4
jmp 0x522562
mov esi, ecx
xor ecx, ecx
add edi, ecx
mov dword [edx + 0x60], edi
test eax, eax
jg 0x5225a2
xchg ebp, eax
mov byte [esp + 0x2b], al
xchg ebp, eax
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x522668
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 0x523604
mov edi, dword [edx + 0x54]
movzx edi, byte [edi + eax]
xchg edi, eax
cmp al, 0x2b
xchg edi, eax
jne 0x5225c5
mov eax, 1
jmp 0x5225d5
xchg edi, eax
cmp al, 0x2d
xchg edi, eax
jne 0x522655
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 0x5235fd
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + edi]
test cl, 0x80
jne 0x522605
mov ecx, 1
jmp 0x52264e
mov byte [esp + 0x25], cl
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x522618
mov ecx, 2
jmp 0x52264e
mov ecx, esi
movzx esi, byte [esp + 0x25]
and esi, 0xfffffff0
xchg esi, eax
cmp al, 0xe0
xchg esi, eax
jne 0x522632
mov esi, ecx
mov ecx, 3
jmp 0x52264e
movzx esi, byte [esp + 0x25]
and esi, 0xfffffff8
xchg esi, eax
cmp al, 0xf0
xchg esi, eax
jne 0x52264a
mov esi, ecx
mov ecx, 4
jmp 0x52264e
mov esi, ecx
xor ecx, ecx
add edi, ecx
mov dword [edx + 0x60], edi
jmp 0x522657
xor eax, eax
xchg ebp, eax
movzx eax, al
xchg ebp, eax
add ebp, 0xffffffd0
mov edi, dword [esp + 0x6c]
jmp 0x522707
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
nop
mov dword [edx], 3
mov dword [edx + 0x24], 0x1d
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x52269d
mov eax, dword [edx + 0x20]
mov ecx, edi
call fcn.00464af0
mov dword [edi], eax
mov edi, ecx
lea eax, [0x5835d5]
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 [0x6d0ed8]
test eax, eax
je 0x5226ca
mov eax, dword [edx + 4]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x586b70]
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 0x522707
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 0x52276e
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x52274c
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 0x52276e
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 0x5235f8
mov ecx, dword [edx + 0x54]
movzx eax, byte [ecx + eax]
cmp al, 0x20
je 0x522791
cmp al, 9
jne 0x52285c
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 0x5235f1
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + edi]
test cl, 0x80
jne 0x5227c6
mov ecx, 1
jmp 0x52280f
mov byte [esp + 0x24], cl
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x5227d9
mov ecx, 2
jmp 0x52280f
mov ecx, esi
movzx esi, byte [esp + 0x24]
and esi, 0xfffffff0
xchg esi, eax
cmp al, 0xe0
xchg esi, eax
jne 0x5227f3
mov esi, ecx
mov ecx, 3
jmp 0x52280f
movzx esi, byte [esp + 0x24]
and esi, 0xfffffff8
xchg esi, eax
cmp al, 0xf0
xchg esi, eax
jne 0x52280b
mov esi, ecx
mov ecx, 4
jmp 0x52280f
mov esi, ecx
xor ecx, ecx
add edi, ecx
mov dword [edx + 0x60], edi
test eax, eax
jg 0x52276a
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x52284d
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x68]
jmp 0x52276a
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
cmp al, 0x23
je 0x5233f1
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp ecx, eax
jbe 0x5233e4
mov edi, dword [edx + 0x54]
movzx esi, byte [edi + eax]
xchg esi, eax
cmp al, 0xd
xchg esi, eax
je 0x522984
xchg esi, eax
cmp al, 0xa
xchg esi, eax
jne 0x522896
xchg esi, eax
cmp al, 0xd
xchg esi, eax
jmp 0x522984
xchg esi, eax
cmp al, 0xc2
xchg esi, eax
jne 0x5228c3
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x5233dd
lea ebx, [edi + eax + 1]
cmp byte [ebx], 0x85
jne 0x5228bf
xchg esi, eax
cmp al, 0xd
xchg esi, eax
mov ebx, dword [esp + 0x64]
jmp 0x522984
mov ebx, dword [esp + 0x64]
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x522975
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x5233d6
lea ebp, [edi + eax + 1]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x522920
lea edx, [eax + 2]
cmp ecx, edx
jbe 0x5233cf
lea edx, [edi + eax + 2]
cmp byte [edx], 0xa8
jne 0x522912
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 0x522984
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
mov edx, dword [esp + 0xd4]
jmp 0x522925
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x52296d
cmp ecx, ebx
jbe 0x5233c8
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x522963
lea ebx, [eax + 2]
cmp ecx, ebx
jbe 0x5233c1
lea ebx, [edi + eax + 2]
cmp byte [ebx], 0xa9
jne 0x522959
xchg esi, eax
cmp al, 0xd
xchg esi, eax
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x522984
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x522975
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x522975
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x522bbb
xchg esi, eax
cmp al, 0xd
xchg esi, eax
je 0x522a49
xchg esi, eax
cmp al, 0xa
xchg esi, eax
je 0x522a49
xchg esi, eax
cmp al, 0xc2
xchg esi, eax
jne 0x5229bd
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x5233ba
lea ebx, [edi + eax + 1]
cmp byte [ebx], 0x85
jne 0x5229b9
mov ebx, dword [esp + 0x64]
jmp 0x522a49
mov ebx, dword [esp + 0x64]
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x522ab3
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x5233b3
lea ebp, [edi + eax + 1]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x522a13
xchg ebp, eax
mov byte [esp + 0x2a], al
xchg ebp, eax
lea ebp, [eax + 2]
cmp ecx, ebp
jbe 0x5233ac
lea ebp, [edi + eax + 2]
cmp byte [ebp], 0xa8
jne 0x522a07
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x522a49
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
movzx ebp, byte [esp + 0x2a]
jmp 0x522a18
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x522aab
cmp ecx, ebx
jbe 0x5233a5
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x522aa1
lea ebx, [eax + 2]
cmp ecx, ebx
jbe 0x52339e
lea eax, [edi + eax + 2]
cmp byte [eax], 0xa9
jne 0x522a97
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
cmp dword [edx + 0x64], 2
jge 0x522a6f
mov dword [esp], edx
mov dword [esp + 4], 2
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x522a88
mov edx, dword [esp + 0xd4]
mov dword [esp], edx
call fcn.0051b230
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x522ab3
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x522ab3
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x522ab3
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 0x522af3
mov eax, dword [edx + 0xac]
test eax, eax
jl 0x522aef
add eax, ebp
mov dword [esp + 0x3c], eax
jmp 0x522af3
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.00523640
movzx eax, byte [esp + 0x1c]
test al, al
je 0x522bac
mov edx, dword [esp + 0xd4]
mov ebx, dword [edx + 0x64]
test ebx, ebx
jg 0x522b76
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x522b9d
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 0x522c7b
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 [0x6d0ed8]
test eax, eax
je 0x522bdd
mov eax, dword [edx + 0x20]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x5835d5]
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 [0x6d0ed8]
test eax, eax
je 0x522c12
mov eax, dword [edx + 4]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x58723d]
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 0x522fba
mov esi, dword [edx + 0x58]
mov ebp, dword [edx + 0x60]
cmp esi, ebp
jbe 0x523395
mov esi, dword [edx + 0x54]
movzx ebp, byte [esi + ebp]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x522fb3
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
jne 0x522cc7
mov ebp, 1
jmp 0x522cd3
xchg ebp, eax
cmp al, 9
xchg ebp, eax
xchg ebp, ebx
sete bl
xchg ebp, ebx
test bl, bl
je 0x522ce3
mov eax, dword [esp + 0x80]
jmp 0x522d98
test al, al
je 0x522cf3
mov eax, dword [esp + 0x80]
jmp 0x522d98
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x522d05
mov eax, dword [esp + 0x80]
jmp 0x522d98
test ecx, ecx
je 0x522d91
mov eax, dword [esp + 0x80]
cmp byte [eax], 0xa
jne 0x522d98
mov ecx, dword [esp + 0x74]
test ecx, ecx
jne 0x522d84
mov ecx, dword [esp + 0x2c]
inc ecx
cmp edi, ecx
jb 0x522d30
mov ebp, dword [esp + 0x7c]
jmp 0x522d7a
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, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
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 0x522e26
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
jmp 0x522e26
mov eax, dword [esp + 0x80]
mov ebp, dword [esp + 0x2c]
lea esi, [ebp + ecx]
cmp edi, esi
jae 0x522de5
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, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
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.004653e0
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 0x522e34
mov esi, ecx
jmp 0x522e66
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, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
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.004653e0
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x60]
cmp edx, ecx
jae 0x52338e
mov ebx, dword [eax + 0x54]
movzx edx, byte [ebx + edx]
cmp dl, 0x20
jne 0x522ec0
mov edx, 1
jmp 0x522ec6
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 0x5231bb
mov ecx, dword [esp + 0x2c]
jmp 0x522efa
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
jmp 0x522efa
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
cmp dword [eax + 0x64], 2
jge 0x522f24
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x52334b
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.0051b630
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.00523640
movzx eax, byte [esp + 0x1c]
test al, al
jne 0x522c45
jmp 0x52333c
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x50]
cmp eax, 0xffffffff
je 0x52304b
mov edx, dword [esp + 0x2c]
lea esi, [edx + ecx]
cmp edi, esi
jae 0x523013
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, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
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.004653e0
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 0x523053
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x2c]
cmp eax, 1
jne 0x5230d4
mov eax, dword [esp + 0x74]
add edx, eax
cmp edi, edx
jb 0x523066
mov eax, edx
jmp 0x523098
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, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
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.004653e0
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, [0x5b6c38]
mov eax, edi
lea edi, [esp + 0x88]
call fcn.0046514c
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 [0x6d0ed8]
test eax, eax
je 0x523186
lea eax, [0x56fb40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x88]
mov dword [esp + 8], eax
call fcn.004113d0
movzx ebx, byte [esp + 0xdc]
mov edi, dword [esp + 0xd8]
lea esi, [esp + 0x88]
call fcn.0046514c
test bl, bl
jne 0x5231a1
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 0x523385
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 0x522efa
xchg edi, eax
cmp al, 0xa
xchg edi, eax
je 0x522efa
xchg edi, eax
cmp al, 0xc2
xchg edi, eax
jne 0x523215
lea ecx, [esi + 1]
cmp ebx, ecx
jbe 0x52337c
lea ecx, [edx + esi + 1]
cmp byte [ecx], 0x85
je 0x522edb
mov ecx, dword [esp + 0x2c]
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
jne 0x5232aa
lea ecx, [esi + 1]
cmp ebx, ecx
jbe 0x523373
lea ebp, [edx + esi + 1]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x523260
lea eax, [esi + 2]
cmp ebx, eax
jbe 0x52336c
lea eax, [edx + esi + 2]
cmp byte [eax], 0xa8
je 0x522ee1
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
mov eax, dword [esp + 0xd4]
jmp 0x523265
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
jne 0x5232a2
cmp ebx, ecx
jbe 0x523363
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x523298
lea ebp, [esi + 2]
cmp ebx, ebp
jbe 0x52335a
lea ecx, [edx + esi + 2]
cmp byte [ecx], 0xa9
je 0x522ef2
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
jmp 0x5232aa
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
jmp 0x5232aa
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
xchg edi, eax
test al, al
xchg edi, eax
je 0x522efa
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.0051b400
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 0x5231b0
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.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x52332d
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
jmp 0x5231b0
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.00464b70
mov eax, ecx
mov ecx, ebx
call fcn.00464b70
mov ecx, ebx
call fcn.00464b70
mov eax, ecx
mov ecx, ebx
call fcn.00464b70
mov eax, ecx
mov ecx, ebx
call fcn.00464b70
mov eax, esi
mov ecx, ebx
call fcn.00464b70
mov eax, edx
call fcn.00464b70
mov eax, ebp
mov ecx, esi
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, ebp
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, edx
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
call fcn.00464b70
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp ecx, eax
jbe 0x5235ec
mov edi, dword [edx + 0x54]
movzx esi, byte [edi + eax]
xchg esi, eax
cmp al, 0xd
xchg esi, eax
je 0x5235b7
xchg esi, eax
cmp al, 0xa
xchg esi, eax
je 0x5235b7
xchg esi, eax
cmp al, 0xc2
xchg esi, eax
jne 0x52343f
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x5235e5
lea ebx, [edi + eax + 1]
cmp byte [ebx], 0x85
je 0x523587
mov ebx, dword [esp + 0x64]
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x5234d4
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x5235de
lea ebp, [edi + eax + 1]
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x52348a
lea edx, [eax + 2]
cmp ecx, edx
jbe 0x5235d7
lea edx, [edi + eax + 2]
cmp byte [edx], 0xa8
je 0x52358d
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
mov edx, dword [esp + 0xd4]
jmp 0x52348f
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x5234cc
cmp ecx, ebx
jbe 0x5235d0
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jne 0x5234c2
lea ebx, [eax + 2]
cmp ecx, ebx
jbe 0x5235c9
lea ebx, [edi + eax + 2]
cmp byte [ebx], 0xa9
je 0x52359e
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5234d4
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5234d4
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
xchg esi, eax
test al, al
xchg esi, eax
je 0x5235b7
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 0x5235c4
mov edi, dword [edx + 0x54]
movzx edi, byte [edi + eax]
xchg edi, eax
test al, 0x80
xchg edi, eax
jne 0x523515
mov ecx, 1
jmp 0x52354c
mov ecx, edi
and edi, 0xffffffe0
xchg edi, eax
cmp al, 0xc0
xchg edi, eax
jne 0x523528
mov ecx, 2
jmp 0x52354c
mov edi, ecx
and ecx, 0xfffffff0
cmp cl, 0xe0
jne 0x523539
mov ecx, 3
jmp 0x52354c
and edi, 0xfffffff8
xchg edi, eax
cmp al, 0xf0
xchg edi, eax
jne 0x52354a
mov ecx, 4
jmp 0x52354c
xor ecx, ecx
lea edi, [ecx + eax]
mov dword [edx + 0x60], edi
test esi, esi
jg 0x5233e9
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x5235a8
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5233e9
mov ebx, dword [esp + 0x64]
jmp 0x5235b7
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5235b7
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
jmp 0x5235b7
mov byte [esp + 0xe0], 0
add esp, 0xd0
ret
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
jmp 0x522865
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, edx
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
call fcn.00464b70
mov eax, edi
call fcn.00464b70
call fcn.00464b70
mov eax, edi
call fcn.00464b70
call fcn.00464b70
mov eax, edi
call fcn.00464b70
mov eax, edi
call fcn.00464b70
mov eax, ebp
call fcn.00464b70
mov eax, edi
call fcn.00464b70
call fcn.00464b70
call fcn.00464b70
nop
call fcn.004636f0
jmp fcn.00522170