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

Disassembly:
mov ecx, dword [0x6d0e30]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x54]
cmp eax, dword [ecx + 8]
jbe 0x525ef4
sub esp, 0xd4
mov edx, dword [esp + 0xd8]
mov ebx, dword [edx + 0x80]
lea ebp, [ebx + 1]
mov esi, dword [edx + 0x84]
mov edi, dword [edx + 0x88]
mov dword [edx + 0x80], ebp
inc dword [edx + 0x88]
dec dword [edx + 0x64]
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp ecx, eax
jbe 0x525eee
mov ebp, dword [edx + 0x54]
movzx ebp, byte [ebp + eax]
xchg ebp, eax
test al, 0x80
xchg ebp, eax
jne 0x523b0d
mov ecx, 1
jmp 0x523b44
mov ecx, ebp
and ebp, 0xffffffe0
xchg ebp, eax
cmp al, 0xc0
xchg ebp, eax
jne 0x523b20
mov ecx, 2
jmp 0x523b44
mov ebp, ecx
and ecx, 0xfffffff0
cmp cl, 0xe0
jne 0x523b31
mov ecx, 3
jmp 0x523b44
and ebp, 0xfffffff8
xchg ebp, eax
cmp al, 0xf0
xchg ebp, eax
jne 0x523b42
mov ecx, 4
jmp 0x523b44
xor ecx, ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], esi
lea ebp, [ecx + eax]
mov dword [edx + 0x60], ebp
xor eax, eax
xor ecx, ecx
xor ebp, ebp
xor eax, eax
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x7c], eax
xor eax, eax
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0x80], eax
xor eax, eax
mov dword [esp + 0x78], eax
xor eax, eax
jmp 0x523bbc
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x7c], eax
mov eax, edx
mov ecx, edi
mov edx, dword [esp + 0xd8]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x28], ebp
cmp dword [edx + 0x64], 4
jge 0x523c0a
mov dword [esp], edx
mov dword [esp + 4], 4
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x5242ca
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov ebp, dword [edx + 0x88]
test ebp, ebp
jne 0x523d01
mov ebp, dword [edx + 0x58]
mov edi, dword [edx + 0x60]
cmp ebp, edi
jbe 0x525ee5
mov esi, dword [edx + 0x54]
movzx ebx, byte [esi + edi]
cmp bl, 0x2d
jne 0x523c64
lea eax, [edi + 1]
cmp ebp, eax
jbe 0x525ede
lea eax, [esi + edi + 1]
cmp byte [eax], 0x2d
jne 0x523c60
lea eax, [edi + 2]
cmp ebp, eax
jbe 0x525ed7
lea eax, [esi + edi + 2]
cmp byte [eax], 0x2d
je 0x523ca3
mov eax, dword [esp + 0x3c]
jmp 0x523c64
mov eax, dword [esp + 0x3c]
cmp bl, 0x2e
jne 0x523cf5
lea ebx, [edi + 1]
cmp ebp, ebx
jbe 0x525ece
lea ebx, [esi + edi + 1]
cmp byte [ebx], 0x2e
jne 0x523ce7
lea ebx, [edi + 2]
cmp ebp, ebx
jbe 0x525ec5
lea ebx, [esi + edi + 2]
cmp byte [ebx], 0x2e
je 0x523ca3
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
jmp 0x523d01
mov eax, dword [edx + 0x5c]
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
lea eax, [edi + 3]
mov dword [esp + 0xc], eax
call fcn.00528510
movzx eax, byte [esp + 0x10]
test al, al
jne 0x5241af
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
jmp 0x523d01
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
jmp 0x523d01
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov ebp, dword [edx + 0x58]
mov edi, dword [edx + 0x60]
cmp ebp, edi
jbe 0x525ebc
mov ebp, dword [edx + 0x54]
movzx ebp, byte [ebp + edi]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x524244
mov ebp, dword [esp + 0x7c]
jmp 0x5242e1
xor eax, eax
jmp 0x523e1a
mov ebx, dword [esp + 0xd8]
jmp 0x523d4a
mov ebx, dword [esp + 0xd8]
jmp 0x523d4a
mov ebx, dword [esp + 0xd8]
cmp dword [ebx + 0x64], 3
jge 0x523d7c
mov dword [esp], ebx
mov dword [esp + 4], 3
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x525237
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
nop
inc dword [ebx + 0x80]
inc dword [ebx + 0x88]
dec dword [ebx + 0x64]
mov ecx, dword [ebx + 0x58]
mov eax, dword [ebx + 0x60]
cmp ecx, eax
jbe 0x525e64
mov ecx, dword [ebx + 0x54]
movzx ecx, byte [ecx + eax]
test cl, 0x80
jne 0x523dad
mov ecx, 1
jmp 0x523de2
mov ebp, ecx
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x523dbe
mov ecx, 2
jmp 0x523de2
mov ecx, ebp
and ebp, 0xfffffff0
xchg ebp, eax
cmp al, 0xe0
xchg ebp, eax
jne 0x523dd1
mov ecx, 3
jmp 0x523de2
and ecx, 0xfffffff8
cmp cl, 0xf0
jne 0x523de0
mov ecx, 4
jmp 0x523de2
xor ecx, ecx
add eax, ecx
mov dword [ebx + 0x60], eax
mov dword [esp], ebx
call fcn.0051b230
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov eax, 1
jmp 0x523e1a
xor eax, eax
jmp 0x523e1a
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
xor eax, eax
mov ebp, dword [ebx + 0x64]
test ebp, ebp
jg 0x523e56
mov byte [esp + 0x20], al
mov dword [esp], ebx
mov dword [esp + 4], 1
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x52543c
movzx eax, byte [esp + 0x20]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
test dl, dl
je 0x523e78
mov ecx, dword [ebx + 0x58]
mov ebp, dword [ebx + 0x60]
cmp ecx, ebp
jbe 0x525813
mov ecx, dword [ebx + 0x54]
add ebp, ecx
cmp byte [ebp], 0x27
jne 0x523e95
jmp 0x5252e3
mov ecx, dword [ebx + 0x58]
mov ebp, dword [ebx + 0x60]
cmp ecx, ebp
jbe 0x52580c
mov ecx, dword [ebx + 0x54]
add ebp, ecx
cmp byte [ebp], 0x22
je 0x5252e3
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x74]
jmp 0x525481
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x74]
jmp 0x523ecf
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x74]
jmp 0x523ecf
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x74]
test al, al
je 0x524109
mov edx, dword [esp + 0x44]
test edx, edx
je 0x523ff0
mov esi, dword [esp + 0x80]
cmp byte [esi], 0xa
jne 0x523ff7
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x523f60
mov edx, dword [esp + 0x3c]
inc edx
mov edi, dword [esp + 0x40]
cmp edi, edx
jb 0x523f0e
mov eax, dword [esp + 0x7c]
jmp 0x523f56
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xd8]
mov esi, dword [esp + 0x80]
mov eax, ebp
mov edi, ecx
mov ebp, dword [esp + 0x74]
mov byte [edx + eax - 1], 0x20
jmp 0x5240fa
mov eax, dword [esp + 0x3c]
lea ecx, [edx + eax]
mov edi, dword [esp + 0x40]
cmp edi, ecx
jae 0x523fab
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x7c], ebp
mov edi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], ecx
mov ebx, dword [esp + 0x7c]
add eax, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.004653e0
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x7c]
jmp 0x5240fa
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x3c]
lea ecx, [edx + eax]
mov edi, dword [esp + 0x40]
cmp edi, ecx
jae 0x524049
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x80]
mov edi, eax
mov dword [esp + 0x7c], ebp
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edi
mov ebx, dword [esp + 0x7c]
add eax, ebx
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], edx
call fcn.004653e0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
lea edx, [ecx + eax]
mov ebx, dword [esp + 0x40]
cmp ebx, edx
jb 0x524080
mov ebp, dword [esp + 0x7c]
jmp 0x5240ba
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov ebp, eax
mov ebx, edi
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x40], ebx
add eax, ebp
mov dword [esp], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004653e0
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x7c]
xor ecx, ecx
xor ecx, ecx
mov dword [esp + 0x34], ecx
xor ecx, ecx
jmp 0x523b99
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
lea edx, [ecx + eax]
mov esi, dword [esp + 0x40]
cmp esi, edx
jb 0x524122
mov edi, dword [esp + 0x7c]
jmp 0x524160
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
mov edi, ebp
mov esi, ecx
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x7c], edi
add eax, edi
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
call fcn.004653e0
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x44]
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x7c]
jmp 0x523b99
nop
mov eax, dword [esp + 0xd8]
mov dword [eax], 3
mov dword [eax + 0x24], 0x1e
mov ecx, dword [0x6d0ed8]
test ecx, ecx
je 0x5241d8
mov ecx, dword [eax + 0x20]
call fcn.00464af0
mov dword [edi], ecx
lea ecx, [0x583c25]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x28], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [eax + 0x30], ecx
mov dword [eax + 8], 0x23
mov ecx, dword [0x6d0ed8]
test ecx, ecx
je 0x524211
mov ecx, dword [eax + 4]
call fcn.00464af0
mov dword [edi], ecx
lea ecx, [0x585527]
mov dword [eax + 4], ecx
mov ecx, dword [eax + 0x80]
mov edx, dword [eax + 0x84]
mov ebx, dword [eax + 0x88]
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], ebx
mov byte [esp + 0xe4], 0
add esp, 0xd4
ret
nop
mov dword [edx], 3
mov dword [edx + 0x24], 0x1e
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x524266
mov eax, dword [edx + 0x20]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x583c25]
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], 0x1e
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x524297
mov eax, dword [edx + 4]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x583c43]
mov dword [edx + 4], eax
mov eax, dword [edx + 0x80]
mov ecx, dword [edx + 0x84]
mov ebx, dword [edx + 0x88]
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], ecx
mov dword [edx + 0x1c], ebx
mov byte [esp + 0xe4], 0
add esp, 0xd4
ret
mov byte [esp + 0xe4], 0
add esp, 0xd4
ret
mov ebp, eax
mov eax, ecx
mov ecx, edx
mov edx, ebx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x7c], ebp
mov ebx, dword [edx + 0x54]
mov esi, dword [edx + 0x58]
mov edi, dword [edx + 0x5c]
mov ebp, dword [edx + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
call fcn.00528510
movzx eax, byte [esp + 0x10]
test al, al
jne 0x523e09
movzx edx, byte [esp + 0xe0]
test dl, dl
je 0x52450d
mov ebx, dword [esp + 0xd8]
mov ecx, dword [ebx + 0x58]
mov eax, dword [ebx + 0x60]
cmp ecx, eax
jbe 0x525eb7
mov ebp, dword [ebx + 0x54]
lea esi, [eax + ebp]
movzx esi, byte [esi]
xchg esi, eax
cmp al, 0x27
xchg esi, eax
jne 0x5244ed
lea edi, [eax + 1]
cmp ecx, edi
jbe 0x525eb0
lea ebp, [eax + ebp + 1]
cmp byte [ebp], 0x27
jne 0x5244e9
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x52437f
mov eax, dword [esp + 0x7c]
jmp 0x5243c8
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x3c], ebp
mov byte [ebp + eax - 1], 0x27
mov edi, dword [ebx + 0x80]
lea ecx, [edi + 1]
nop
mov dword [ebx + 0x80], ecx
mov ecx, dword [ebx + 0x88]
lea edx, [ecx + 1]
mov dword [ebx + 0x88], edx
mov edx, dword [ebx + 0x64]
lea eax, [edx - 1]
mov dword [ebx + 0x64], eax
mov eax, dword [ebx + 0x58]
mov ebp, dword [ebx + 0x60]
cmp eax, ebp
jbe 0x525ea7
mov eax, dword [ebx + 0x54]
movzx eax, byte [eax + ebp]
test al, 0x80
jne 0x52441e
mov eax, 1
jmp 0x524467
mov byte [esp + 0x23], al
and eax, 0xffffffe0
cmp al, 0xc0
jne 0x524431
mov eax, 2
jmp 0x524467
mov eax, esi
movzx esi, byte [esp + 0x23]
and esi, 0xfffffff0
xchg esi, eax
cmp al, 0xe0
xchg esi, eax
jne 0x52444b
mov esi, eax
mov eax, 3
jmp 0x524467
movzx esi, byte [esp + 0x23]
and esi, 0xfffffff8
xchg esi, eax
cmp al, 0xf0
xchg esi, eax
jne 0x524463
mov esi, eax
mov eax, 4
jmp 0x524467
mov esi, eax
xor eax, eax
add eax, ebp
mov dword [ebx + 0x60], eax
lea ebp, [edi + 2]
lea edi, [ecx + 2]
add edx, 0xfffffffe
mov dword [ebx + 0x80], ebp
mov dword [ebx + 0x88], edi
mov dword [ebx + 0x64], edx
mov ecx, dword [ebx + 0x58]
cmp ecx, eax
jbe 0x525ea2
mov ecx, dword [ebx + 0x54]
movzx ecx, byte [eax + ecx]
test cl, 0x80
jne 0x5244a2
mov ecx, 1
jmp 0x5244d5
mov edx, ecx
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x5244b3
mov ecx, 2
jmp 0x5244d5
mov ecx, edx
and edx, 0xfffffff0
cmp dl, 0xe0
jne 0x5244c4
mov ecx, 3
jmp 0x5244d5
and ecx, 0xfffffff8
cmp cl, 0xf0
jne 0x5244d3
mov ecx, 4
jmp 0x5244d5
xor ecx, ecx
add ecx, eax
mov dword [ebx + 0x60], ecx
mov edx, esi
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x7c]
jmp 0x5251df
test dl, dl
jmp 0x5244ef
test dl, dl
je 0x524514
cmp ecx, eax
jbe 0x525e9d
xchg esi, eax
cmp al, 0x27
xchg esi, eax
je 0x523d2a
test dl, dl
je 0x524514
jmp 0x5251b3
mov ebx, dword [esp + 0xd8]
mov ecx, dword [ebx + 0x58]
mov eax, dword [ebx + 0x60]
cmp ecx, eax
jbe 0x525e98
mov ebp, dword [ebx + 0x54]
lea esi, [eax + ebp]
cmp byte [esi], 0x22
je 0x523e05
test dl, dl
jne 0x5251b3
cmp ecx, eax
jbe 0x525e93
movzx esi, byte [esi]
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
jne 0x524651
lea edi, [eax + 1]
cmp ecx, edi
jbe 0x525e8c
movzx edi, byte [eax + ebp + 1]
xchg edi, eax
cmp al, 0xd
xchg edi, eax
je 0x523d4a
xchg edi, eax
cmp al, 0xa
xchg edi, eax
je 0x523d4a
xchg edi, eax
cmp al, 0xc2
xchg edi, eax
jne 0x52459b
lea ebx, [eax + 2]
cmp ecx, ebx
jbe 0x525e85
lea ebx, [eax + ebp + 2]
cmp byte [ebx], 0x85
je 0x523d31
mov ebx, dword [esp + 0xd8]
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
jne 0x52464d
lea ebx, [eax + 2]
cmp ecx, ebx
jbe 0x525e7e
xchg esi, eax
mov byte [esp + 0x27], al
xchg esi, eax
lea esi, [eax + ebp + 2]
movzx esi, byte [esi]
xchg esi, eax
cmp al, 0x80
xchg esi, eax
jne 0x5245ef
xchg esi, eax
mov byte [esp + 0x26], al
xchg esi, eax
lea esi, [eax + 3]
cmp ecx, esi
jbe 0x525e77
lea esi, [eax + ebp + 3]
cmp byte [esi], 0xa8
je 0x523d3a
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
movzx esi, byte [esp + 0x26]
jmp 0x5245f4
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
jne 0x52463d
cmp ecx, ebx
jbe 0x525e70
xchg esi, eax
cmp al, 0x80
xchg esi, eax
jne 0x52462d
lea ebx, [eax + 3]
cmp ecx, ebx
jbe 0x525e69
lea ebx, [eax + ebp + 3]
cmp byte [ebx], 0xa9
je 0x523d43
test dl, dl
mov ebx, dword [esp + 0xd8]
movzx esi, byte [esp + 0x27]
jmp 0x524653
test dl, dl
mov ebx, dword [esp + 0xd8]
movzx esi, byte [esp + 0x27]
jmp 0x524653
test dl, dl
mov ebx, dword [esp + 0xd8]
movzx esi, byte [esp + 0x27]
jmp 0x524653
test dl, dl
jmp 0x524653
test dl, dl
jne 0x5251b3
cmp ecx, eax
jbe 0x525e5f
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
jne 0x5251b3
lea esi, [eax + 1]
cmp ecx, esi
jbe 0x525e58
movzx ebp, byte [eax + ebp + 1]
xchg ebp, eax
cmp al, 0x5c
xchg ebp, eax
ja 0x524bbf
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
ja 0x524868
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
ja 0x524717
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x524f47
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
jne 0x525255
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x5246c2
mov eax, dword [esp + 0x7c]
jmp 0x52470b
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov byte [ebp + eax - 1], 0x20
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x22
xchg ebp, eax
jne 0x524786
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524731
mov eax, dword [esp + 0x7c]
jmp 0x52477a
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov byte [ebp + eax - 1], 0x22
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x27
xchg ebp, eax
jne 0x5247f5
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x5247a0
mov eax, dword [esp + 0x7c]
jmp 0x5247e9
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov byte [ebp + eax - 1], 0x27
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jne 0x525255
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524813
mov eax, dword [esp + 0x7c]
jmp 0x52485c
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov byte [ebp + eax - 1], 0
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x4e
xchg ebp, eax
ja 0x524a2e
xchg ebp, eax
cmp al, 0x4c
xchg ebp, eax
jne 0x524974
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524891
mov eax, dword [esp + 0x7c]
jmp 0x5248da
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, eax
mov eax, ebp
mov ebp, edi
mov byte [ebp + eax - 1], 0xe2
inc ebp
cmp esi, ebp
jae 0x524921
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov byte [ebp + eax - 1], pe_nt_image_headers32
inc ebp
cmp esi, ebp
jae 0x524968
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov byte [ebp + eax - 1], 0xa8
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x4e
xchg ebp, eax
jne 0x525255
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524992
mov eax, dword [esp + 0x7c]
jmp 0x5249db
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, eax
mov eax, ebp
mov ebp, edi
mov byte [ebp + eax - 1], 0xc2
inc ebp
cmp esi, ebp
jae 0x524a22
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov byte [ebp + eax - 1], 0x85
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x50
xchg ebp, eax
jne 0x524b2f
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524a4c
mov eax, dword [esp + 0x7c]
jmp 0x524a95
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, eax
mov eax, ebp
mov ebp, edi
mov byte [ebp + eax - 1], 0xe2
inc ebp
cmp esi, ebp
jae 0x524adc
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov byte [ebp + eax - 1], pe_nt_image_headers32
inc ebp
cmp esi, ebp
jae 0x524b23
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov byte [ebp + eax - 1], 0xa9
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x55
xchg ebp, eax
jne 0x524b4c
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x7c]
mov ebp, dword [esp + 0x3c]
mov ecx, 8
jmp 0x525054
xchg ebp, eax
cmp al, 0x5c
xchg ebp, eax
jne 0x525255
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524b6a
mov eax, dword [esp + 0x7c]
jmp 0x524bb3
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov byte [ebp + eax - 1], 0x5c
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x66
xchg ebp, eax
ja 0x524e53
xchg ebp, eax
cmp al, 0x61
xchg ebp, eax
ja 0x524d02
xchg ebp, eax
cmp al, 0x5f
xchg ebp, eax
jne 0x524c8f
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524bf3
mov eax, dword [esp + 0x7c]
jmp 0x524c3c
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, eax
mov eax, ebp
mov ebp, edi
mov byte [ebp + eax - 1], 0xc2
inc ebp
cmp esi, ebp
jae 0x524c83
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov byte [ebp + eax - 1], 0xa0
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x61
xchg ebp, eax
jne 0x525255
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524cad
mov eax, dword [esp + 0x7c]
jmp 0x524cf6
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov byte [ebp + eax - 1], 7
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x62
xchg ebp, eax
jne 0x524d71
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524d1c
mov eax, dword [esp + 0x7c]
jmp 0x524d65
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov byte [ebp + eax - 1], 8
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x65
xchg ebp, eax
jne 0x524de0
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524d8b
mov eax, dword [esp + 0x7c]
jmp 0x524dd4
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov byte [ebp + eax - 1], 0x1b
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x66
xchg ebp, eax
jne 0x525255
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524dfe
mov eax, dword [esp + 0x7c]
jmp 0x524e47
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov byte [ebp + eax - 1], 0xc
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x74
xchg ebp, eax
ja 0x524faf
xchg ebp, eax
cmp al, 0x6e
xchg ebp, eax
jne 0x524ecd
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524e78
mov eax, dword [esp + 0x7c]
jmp 0x524ec1
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov byte [ebp + eax - 1], 0xa
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x72
xchg ebp, eax
jne 0x524f3c
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524ee7
mov eax, dword [esp + 0x7c]
jmp 0x524f30
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov byte [ebp + eax - 1], 0xd
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x74
xchg ebp, eax
jne 0x525255
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524f5a
mov eax, dword [esp + 0x7c]
jmp 0x524fa3
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov byte [ebp + eax - 1], 9
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x75
xchg ebp, eax
jne 0x524fcc
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x7c]
mov ebp, dword [esp + 0x3c]
mov ecx, 4
jmp 0x525054
xchg ebp, eax
cmp al, 0x76
xchg ebp, eax
jne 0x525038
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x524fe6
mov eax, dword [esp + 0x7c]
jmp 0x52502f
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0xe0]
mov ebx, dword [esp + 0xd8]
mov esi, ecx
mov edi, ebp
mov ebp, eax
mov eax, edi
mov byte [ebp + eax - 1], 0xb
xor ecx, ecx
jmp 0x525054
xchg ebp, eax
cmp al, 0x78
xchg ebp, eax
jne 0x525255
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x7c]
mov ebp, dword [esp + 0x3c]
mov ecx, 2
mov dword [esp + 0x40], esi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x3c], ebp
mov edi, dword [ebx + 0x80]
lea edx, [edi + 1]
nop
mov dword [ebx + 0x80], edx
mov edx, dword [ebx + 0x88]
lea eax, [edx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x64]
lea ebp, [eax - 1]
mov dword [ebx + 0x64], ebp
mov ebp, dword [ebx + 0x58]
mov esi, dword [ebx + 0x60]
cmp ebp, esi
jbe 0x525e4f
mov ebp, dword [ebx + 0x54]
movzx ebp, byte [ebp + esi]
xchg ebp, eax
test al, 0x80
xchg ebp, eax
jne 0x5250ac
mov ebp, 1
jmp 0x5250f1
xchg ebp, eax
mov byte [esp + 0x22], al
xchg ebp, eax
and ebp, 0xffffffe0
xchg ebp, eax
cmp al, 0xc0
xchg ebp, eax
jne 0x5250c3
mov ebp, 2
jmp 0x5250f1
movzx ebp, byte [esp + 0x22]
and ebp, 0xfffffff0
xchg ebp, eax
cmp al, 0xe0
xchg ebp, eax
jne 0x5250d9
mov ebp, 3
jmp 0x5250f1
movzx ebp, byte [esp + 0x22]
and ebp, 0xfffffff8
xchg ebp, eax
cmp al, 0xf0
xchg ebp, eax
jne 0x5250ef
mov ebp, 4
jmp 0x5250f1
xor ebp, ebp
add ebp, esi
mov dword [ebx + 0x60], ebp
lea esi, [edi + 2]
add edx, 2
lea edi, [eax - 2]
nop
mov dword [ebx + 0x80], esi
mov dword [ebx + 0x88], edx
mov dword [ebx + 0x64], edi
mov edx, dword [ebx + 0x58]
cmp edx, ebp
jbe 0x525e46
mov edx, dword [ebx + 0x54]
movzx edx, byte [ebp + edx]
test dl, 0x80
jne 0x52512e
mov eax, 1
jmp 0x525163
mov esi, edx
and edx, 0xffffffe0
cmp dl, 0xc0
jne 0x52513f
mov eax, 2
jmp 0x525163
mov edx, esi
and esi, 0xfffffff0
xchg esi, eax
cmp al, 0xe0
xchg esi, eax
jne 0x525152
mov eax, 3
jmp 0x525163
and edx, 0xfffffff8
cmp dl, 0xf0
jne 0x525161
mov eax, 4
jmp 0x525163
xor eax, eax
lea edx, [eax + ebp]
mov dword [ebx + 0x60], edx
test ecx, ecx
jle 0x5251a2
mov dword [esp + 0x4c], ecx
cmp ecx, edi
jle 0x525199
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x525246
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xd8]
xor eax, eax
xor edx, edx
jmp 0x52583c
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x7c]
jmp 0x525829
mov dword [esp], ebx
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], eax
call fcn.0051b400
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xd8]
cmp dword [ebx + 0x64], 2
jge 0x5242d9
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x84], eax
mov dword [esp], ebx
mov dword [esp + 4], 2
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x52581a
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0xd8]
jmp 0x5242d9
mov byte [esp + 0xe4], 0
add esp, 0xd4
ret
mov byte [esp + 0xe4], 0
add esp, 0xd4
ret
nop
mov dword [ebx], 3
mov dword [ebx + 0x24], 0x1d
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x525277
mov eax, dword [ebx + 0x20]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x5835f2]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x70]
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x68]
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x30], eax
mov dword [ebx + 8], 0x1e
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x5252b0
mov eax, dword [ebx + 4]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x583c61]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x84]
mov edx, dword [ebx + 0x88]
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], ecx
mov dword [ebx + 0x1c], edx
mov byte [esp + 0xe4], 0
add esp, 0xd4
ret
mov ebp, dword [ebx + 0x80]
inc ebp
nop
mov dword [ebx + 0x80], ebp
mov eax, dword [ebx + 0x88]
inc eax
mov dword [ebx + 0x88], eax
dec dword [ebx + 0x64]
mov ecx, dword [ebx + 0x58]
mov esi, dword [ebx + 0x60]
cmp esi, ecx
jae 0x52544b
mov ecx, dword [ebx + 0x54]
movzx ecx, byte [ecx + esi]
test cl, 0x80
jne 0x525322
mov ecx, 1
jmp 0x525357
mov edi, ecx
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x525333
mov ecx, 2
jmp 0x525357
mov ecx, edi
and edi, 0xfffffff0
xchg edi, eax
cmp al, 0xe0
xchg edi, eax
jne 0x525346
mov ecx, 3
jmp 0x525357
and ecx, 0xfffffff8
cmp cl, 0xf0
jne 0x525355
mov ecx, 4
jmp 0x525357
xor ecx, ecx
add ecx, esi
mov dword [ebx + 0x60], ecx
mov ecx, dword [ebx + 0x84]
mov dword [esp + 0x64], ecx
lea edi, [esp + 0x8c]
lea esi, [0x5b6c80]
call fcn.0046514c
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], ebp
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xb4], eax
mov edi, dword [esp + 0xdc]
test byte [edi], al
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x525412
lea eax, [0x56fb40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x8c]
mov dword [esp + 8], eax
call fcn.004113d0
movzx edx, byte [esp + 0xe0]
mov edi, dword [esp + 0xdc]
lea esi, [esp + 0x8c]
call fcn.0046514c
test dl, dl
jne 0x52542d
mov eax, dword [esp + 0xdc]
mov byte [eax + 0x44], 3
mov byte [esp + 0xe4], 1
add esp, 0xd4
ret
mov byte [esp + 0xe4], 0
add esp, 0xd4
ret
mov eax, esi
call fcn.00464b70
mov edx, dword [esp + 0xd8]
movzx edx, byte [esp + 0xe0]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x44], ecx
mov dword [esp + 0x80], eax
mov ebp, dword [esp + 0x74]
mov ecx, dword [esp + 0x2c]
mov eax, ebx
mov ebx, dword [esp + 0xd8]
mov dword [esp + 0x38], esi
mov edx, dword [ebx + 0x58]
mov esi, dword [ebx + 0x60]
cmp edx, esi
jbe 0x525803
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x48], edi
mov dword [esp + 0x74], ebp
mov byte [esp + 0x25], al
mov edi, dword [ebx + 0x54]
movzx ecx, byte [edi + esi]
cmp cl, 0x20
je 0x525597
cmp cl, 9
jne 0x5254c0
cmp cl, 0x20
jmp 0x525597
cmp cl, 0xd
jne 0x5254cd
cmp cl, 0x20
jmp 0x525597
cmp cl, 0xa
jne 0x5254da
cmp cl, 0x20
jmp 0x525597
cmp cl, 0xc2
jne 0x525504
lea ebp, [esi + 1]
cmp edx, ebp
jbe 0x5257fa
lea ebp, [edi + esi + 1]
cmp byte [ebp], 0x85
jne 0x525500
cmp cl, 0x20
mov ebp, dword [esp + 0x74]
jmp 0x525597
mov ebp, dword [esp + 0x74]
cmp cl, 0xe2
jne 0x523ecf
lea ebp, [esi + 1]
cmp edx, ebp
jbe 0x5257f1
lea ebx, [edi + esi + 1]
movzx ebx, byte [ebx]
cmp bl, 0x80
jne 0x525557
lea eax, [esi + 2]
cmp edx, eax
jbe 0x5257ea
lea eax, [edi + esi + 2]
cmp byte [eax], 0xa8
jne 0x52554d
cmp cl, 0x20
movzx eax, byte [esp + 0x25]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x74]
jmp 0x525597
cmp cl, 0xe2
movzx eax, byte [esp + 0x25]
jmp 0x52555a
cmp cl, 0xe2
jne 0x523ec4
cmp edx, ebp
jbe 0x5257e1
cmp bl, 0x80
jne 0x523eb7
lea ebx, [esi + 2]
cmp edx, ebx
jbe 0x5257d8
lea edx, [edi + esi + 2]
cmp byte [edx], 0xa9
jne 0x523eaa
cmp cl, 0x20
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x74]
je 0x5255a2
cmp cl, 9
jne 0x525680
test al, al
je 0x525620
inc dword [ebx + 0x80]
inc dword [ebx + 0x88]
dec dword [ebx + 0x64]
mov ecx, dword [ebx + 0x58]
mov edx, dword [ebx + 0x60]
cmp ecx, edx
jbe 0x5257d1
mov esi, dword [ebx + 0x54]
movzx esi, byte [esi + edx]
xchg esi, eax
test al, 0x80
xchg esi, eax
jne 0x5255d8
mov ecx, 1
jmp 0x525611
mov edi, esi
and esi, 0xffffffe0
xchg esi, eax
cmp al, 0xc0
xchg esi, eax
jne 0x5255eb
mov ecx, 2
jmp 0x525611
mov esi, edi
and edi, 0xfffffff0
xchg edi, eax
cmp al, 0xe0
xchg edi, eax
jne 0x5255fe
mov ecx, 3
jmp 0x525611
and esi, 0xfffffff8
xchg esi, eax
cmp al, 0xf0
xchg esi, eax
jne 0x52560f
mov ecx, 4
jmp 0x525611
xor ecx, ecx
add edx, ecx
mov dword [ebx + 0x60], edx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
jmp 0x525658
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
call fcn.0051b400
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0xd8]
mov edx, ecx
mov ecx, eax
movzx eax, byte [esp + 0x25]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x2c], edx
mov edi, dword [esp + 0x48]
mov ebx, eax
mov dword [esp + 0x74], ebp
mov eax, dword [esp + 0x80]
mov edx, ecx
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
jmp 0x525741
cmp dword [ebx + 0x64], 2
jge 0x5256b3
mov dword [esp], ebx
mov dword [esp + 4], 2
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x5257c2
movzx eax, byte [esp + 0x25]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x74]
test al, al
je 0x525703
mov dword [esp], ebx
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], eax
call fcn.0051b630
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x48]
movzx ebx, byte [esp + 0x25]
mov ebp, ecx
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x80]
jmp 0x525741
mov dword [esp], ebx
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
call fcn.0051b630
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
xor edx, edx
mov ebx, 1
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xd8]
mov edx, dword [edx + 0x64]
test edx, edx
jg 0x525452
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ebp
mov dword [esp + 0x88], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], edi
mov byte [esp + 0x24], bl
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00518b70
movzx eax, byte [esp + 8]
test al, al
je 0x5257b3
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x5c]
movzx ebx, byte [esp + 0x24]
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x58]
jmp 0x525452
mov byte [esp + 0xe4], 0
add esp, 0xd4
ret
mov byte [esp + 0xe4], 0
add esp, 0xd4
ret
mov eax, edx
call fcn.00464b70
mov eax, ebx
mov ecx, edx
call fcn.00464b70
mov eax, ebp
mov ecx, edx
call fcn.00464b70
mov ecx, edx
call fcn.00464b70
mov eax, ebp
mov ecx, edx
call fcn.00464b70
mov eax, ebp
mov ecx, edx
call fcn.00464b70
mov eax, esi
mov ecx, edx
call fcn.00464b70
mov eax, ebp
call fcn.00464b70
mov eax, ebp
call fcn.00464b70
mov byte [esp + 0xe4], 0
add esp, 0xd4
ret
mov ebp, ecx
mov ecx, eax
mov eax, edx
mov edx, ebp
jmp 0x5251df
shl edx, 4
inc eax
add edx, ebp
cmp eax, ecx
jge 0x525948
mov ebp, dword [ebx + 0x58]
mov esi, dword [ebx + 0x60]
add esi, eax
cmp ebp, esi
jbe 0x525e3d
mov ebp, dword [ebx + 0x54]
movzx ebp, byte [esi + ebp]
xchg ebp, eax
cmp al, 0x30
xchg ebp, eax
jb 0x5258ba
xchg ebp, eax
cmp al, 0x39
xchg ebp, eax
jbe 0x525885
xchg ebp, eax
cmp al, 0x41
xchg ebp, eax
jb 0x5258ba
xchg ebp, eax
cmp al, 0x46
xchg ebp, eax
jbe 0x525885
xchg ebp, eax
cmp al, 0x61
xchg ebp, eax
jb 0x5258ba
xchg ebp, eax
cmp al, 0x66
xchg ebp, eax
ja 0x5258ba
lea esi, [ebp - 0x41]
xchg esi, eax
cmp al, 5
xchg esi, eax
ja 0x525899
xchg ebp, eax
movzx eax, al
xchg ebp, eax
add ebp, 0xffffffc9
jmp 0x525836
lea esi, [ebp - 0x61]
xchg esi, eax
cmp al, 5
xchg esi, eax
ja 0x5258ad
xchg ebp, eax
movzx esi, al
xchg ebp, eax
lea ebp, [esi - 0x57]
jmp 0x525836
xchg ebp, eax
movzx esi, al
xchg ebp, eax
lea ebp, [esi - 0x30]
jmp 0x525836
nop
mov dword [ebx], 3
mov dword [ebx + 0x24], 0x1d
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x5258dc
mov eax, dword [ebx + 0x20]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x5835f2]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x70]
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x68]
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x30], eax
mov dword [ebx + 8], 0x27
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x525915
mov eax, dword [ebx + 4]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x5863e1]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0x84]
mov ecx, dword [ebx + 0x88]
mov edx, dword [ebx + 0x80]
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], ecx
mov byte [esp + 0xe4], 0
add esp, 0xd4
ret
lea ebp, [edx - 0xd800]
cmp ebp, 0x7ff
jbe 0x525d25
cmp edx, 0x10ffff
jg 0x525d25
mov dword [esp + 0x30], edx
cmp edx, 0x7f
jg 0x5259cc
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x525982
mov eax, dword [esp + 0x7c]
jmp 0x5259c3
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0xd8]
mov byte [ebp + eax - 1], dl
jmp 0x525db9
cmp edx, 0x7ff
jg 0x525a95
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x5259eb
mov eax, dword [esp + 0x7c]
jmp 0x525a2c
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0xd8]
mov edi, edx
sar edx, 6
add edx, 0xc0
mov byte [ebp + eax - 1], dl
lea edx, [ebp + 1]
cmp esi, edx
jae 0x525a7f
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xd8]
mov edi, dword [esp + 0x30]
and edi, 0x3f
lea ebp, [edi + 0x80]
xchg ebp, ebx
mov byte [edx + eax - 1], bl
xchg ebp, ebx
jmp 0x525d1e
cmp edx, 0xffff
jg 0x525bb6
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x525ab4
mov eax, dword [esp + 0x7c]
jmp 0x525af5
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0xd8]
mov edi, edx
sar edx, 0xc
add edx, 0xe0
mov byte [ebp + eax - 1], dl
lea edx, [ebp + 1]
cmp esi, edx
jae 0x525b48
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xd8]
mov edi, dword [esp + 0x30]
mov ebp, edi
sar edi, 6
and edi, 0x3f
add edi, 0x80
xchg edi, ebx
mov byte [edx + eax - 1], bl
xchg edi, ebx
inc edx
cmp esi, edx
jae 0x525ba0
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x30]
and ebp, 0x3f
add ebp, 0x80
xchg ebp, ebx
mov byte [edx + eax - 1], bl
xchg ebp, ebx
jmp 0x525d1e
mov ebp, dword [esp + 0x3c]
inc ebp
mov esi, dword [esp + 0x40]
cmp esi, ebp
jb 0x525bc9
mov eax, dword [esp + 0x7c]
jmp 0x525c0a
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0xd8]
mov edi, edx
sar edx, 0x12
add edx, 0xf0
mov byte [ebp + eax - 1], dl
lea edx, [ebp + 1]
cmp esi, edx
jae 0x525c5d
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xd8]
mov edi, dword [esp + 0x30]
mov ebp, edi
sar edi, 0xc
and edi, 0x3f
add edi, 0x80
xchg edi, ebx
mov byte [edx + eax - 1], bl
xchg edi, ebx
inc edx
cmp esi, edx
jae 0x525cb5
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x30]
mov edi, ebp
sar ebp, 6
and ebp, 0x3f
add ebp, 0x80
xchg ebp, ebx
mov byte [edx + eax - 1], bl
xchg ebp, ebx
inc edx
cmp esi, edx
jae 0x525d0d
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5575c0]
mov dword [esp + 0x10], eax
call fcn.0044b6b0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xd8]
mov edi, dword [esp + 0x30]
and edi, 0x3f
lea ebp, [edi + 0x80]
xchg ebp, ebx
mov byte [edx + eax - 1], bl
xchg ebp, ebx
mov ebp, edx
jmp 0x525db9
nop
mov dword [ebx], 3
mov dword [ebx + 0x24], 0x1d
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x525d47
mov eax, dword [ebx + 0x20]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x5835f2]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x70]
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x68]
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x30], eax
mov dword [ebx + 8], 0x2b
mov eax, dword [0x6d0ed8]
test eax, eax
je 0x525d80
mov eax, dword [ebx + 4]
call fcn.00464af0
mov dword [edi], eax
lea eax, [0x587293]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x84]
mov edx, dword [ebx + 0x88]
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], ecx
mov dword [ebx + 0x1c], edx
mov byte [esp + 0xe4], 0
add esp, 0xd4
ret
add edx, edi
mov dword [ebx + 0x60], edx
dec ecx
test ecx, ecx
jle 0x525e29
nop
inc dword [ebx + 0x80]
inc dword [ebx + 0x88]
dec dword [ebx + 0x64]
mov edx, dword [ebx + 0x58]
mov edi, dword [ebx + 0x60]
cmp edx, edi
jbe 0x525e34
mov edx, dword [ebx + 0x54]
movzx edx, byte [edx + edi]
test dl, 0x80
jne 0x525dea
mov edx, 1
jmp 0x525db3
mov byte [esp + 0x21], dl
and edx, 0xffffffe0
cmp dl, 0xc0
jne 0x525dfd
mov edx, 2
jmp 0x525db3
movzx edx, byte [esp + 0x21]
and edx, 0xfffffff0
cmp dl, 0xe0
jne 0x525e11
mov edx, 3
jmp 0x525db3
movzx edx, byte [esp + 0x21]
and edx, 0xfffffff8
cmp dl, 0xf0
jne 0x525e25
mov edx, 4
jmp 0x525db3
xor edx, edx
jmp 0x525db3
mov ecx, esi
mov edx, eax
mov eax, ebp
jmp 0x525829
mov eax, edi
mov ecx, edx
call fcn.00464b70
mov eax, esi
mov ecx, ebp
call fcn.00464b70
mov eax, ebp
mov ecx, edx
call fcn.00464b70
mov eax, esi
mov ecx, ebp
call fcn.00464b70
mov eax, esi
call fcn.00464b70
call fcn.00464b70
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, esi
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, ebx
call fcn.00464b70
mov eax, edi
call fcn.00464b70
call fcn.00464b70
call fcn.00464b70
call fcn.00464b70
call fcn.00464b70
mov ecx, eax
mov eax, ebp
call fcn.00464b70
mov eax, edi
call fcn.00464b70
call fcn.00464b70
mov eax, edi
mov ecx, ebp
call fcn.00464b70
mov eax, ebx
mov ecx, ebp
call fcn.00464b70
mov eax, ebx
mov ecx, ebp
call fcn.00464b70
mov ecx, ebp
call fcn.00464b70
mov ecx, ebp
call fcn.00464b70
mov eax, edi
mov ecx, ebp
call fcn.00464b70
call fcn.00464b70
nop
call fcn.004636f0
jmp fcn.00523aa0