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

Disassembly:
mov ecx, dword [0x6cfe90]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x60]
cmp eax, dword [ecx + 8]
jbe 0x526a58
sub esp, 0xe0
mov edx, dword [esp + 0xe4]
mov ebx, dword [edx + 0xac]
inc ebx
mov dword [esp + 0x44], ebx
mov ebp, dword [edx + 0x84]
mov dword [esp + 0x7c], ebp
mov eax, dword [edx + 0x88]
mov dword [esp + 0x78], eax
mov ecx, dword [edx + 0x80]
mov dword [esp + 0x74], ecx
mov esi, eax
mov edi, ebp
xor eax, eax
mov dword [esp + 0x38], eax
xor ebp, ebp
mov dword [esp + 0x34], ebp
xor ebp, ebp
mov dword [esp + 0x88], ebp
xor esi, esi
xchg esi, eax
mov byte [esp + 0x21], al
xchg esi, eax
xor edi, edi
mov dword [esp + 0x80], edi
xor edi, edi
mov dword [esp + 0x28], edi
xor edi, edi
mov dword [esp + 0x24], edi
xor edi, edi
mov dword [esp + 0x8c], edi
xor edi, edi
mov dword [esp + 0x40], edi
xor edi, edi
mov dword [esp + 0x3c], edi
xor edi, edi
mov dword [esp + 0x84], edi
xor edi, edi
mov dword [esp + 0x30], edi
xor edi, edi
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x78]
mov ebp, dword [esp + 0x7c]
mov esi, eax
mov edi, ebp
jmp 0x525c14
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x2c]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ecx
cmp dword [edx + 0x64], 4
jge 0x525c62
mov dword [esp], edx
mov dword [esp + 4], 4
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x525f1a
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
mov ebx, dword [edx + 0x88]
test ebx, ebx
jne 0x525d5b
mov ebx, dword [edx + 0x58]
mov esi, dword [edx + 0x60]
cmp ebx, esi
jbe 0x526a4e
mov edi, dword [edx + 0x54]
movzx eax, byte [edi + esi]
cmp al, 0x2d
jne 0x525cbc
lea ecx, [esi + 1]
cmp ebx, ecx
jbe 0x526a45
lea ecx, [edi + esi + 1]
cmp byte [ecx], 0x2d
jne 0x525cb8
lea ecx, [esi + 2]
cmp ebx, ecx
jbe 0x526a3c
lea ecx, [edi + esi + 2]
cmp byte [ecx], 0x2d
je 0x525ced
mov ecx, dword [esp + 0x4c]
jmp 0x525cbc
mov ecx, dword [esp + 0x4c]
cmp al, 0x2e
jne 0x525d4b
lea eax, [esi + 1]
cmp ebx, eax
jbe 0x526a35
lea eax, [edi + esi + 1]
cmp byte [eax], 0x2e
jne 0x525d3b
lea eax, [esi + 2]
cmp ebx, eax
jbe 0x526a2e
lea eax, [edi + esi + 2]
cmp byte [eax], 0x2e
jne 0x525d2b
mov eax, dword [edx + 0x5c]
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
lea eax, [esi + 3]
mov dword [esp + 0xc], eax
call fcn.005281b0
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0xe4]
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
mov ebx, eax
mov eax, dword [esp + 0x50]
jmp 0x525d5d
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
xor ebx, ebx
jmp 0x525d5d
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
xor ebx, ebx
jmp 0x525d5d
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
xor ebx, ebx
jmp 0x525d5d
xor ebx, ebx
test bl, bl
jne 0x525f14
mov ebx, dword [edx + 0x58]
mov esi, dword [edx + 0x60]
cmp ebx, esi
jbe 0x526a25
mov ebx, dword [edx + 0x54]
add ebx, esi
cmp byte [ebx], 0x23
je 0x525f0a
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x88]
jmp 0x526019
mov edx, dword [esp + 0xe4]
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp ecx, eax
jbe 0x526a0d
mov ebx, dword [edx + 0x54]
movzx ebp, byte [ebx + eax]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x525e78
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x525e78
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
je 0x525e78
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
je 0x525e78
xchg ebp, eax
cmp al, 0xc2
xchg ebp, eax
jne 0x525df8
lea esi, [eax + 1]
cmp ecx, esi
jbe 0x526a06
lea esi, [ebx + eax + 1]
cmp byte [esi], 0x85
je 0x525e78
xchg ebp, eax
cmp al, 0xe2
xchg ebp, eax
jne 0x526502
lea esi, [eax + 1]
cmp ecx, esi
jbe 0x5269ff
lea edi, [ebx + eax + 1]
movzx edi, byte [edi]
xchg edi, eax
cmp al, 0x80
xchg edi, eax
jne 0x525e42
xchg edi, eax
mov byte [esp + 0x23], al
xchg edi, eax
lea edi, [eax + 2]
cmp ecx, edi
jbe 0x5269f8
lea edi, [ebx + eax + 2]
cmp byte [edi], 0xa8
je 0x525e78
xchg ebp, eax
cmp al, 0xe2
xchg ebp, eax
movzx edi, byte [esp + 0x23]
jmp 0x525e47
xchg ebp, eax
cmp al, 0xe2
xchg ebp, eax
jne 0x526502
cmp ecx, esi
jbe 0x5269f1
xchg edi, eax
cmp al, 0x80
xchg edi, eax
jne 0x526502
lea ebp, [eax + 2]
cmp ecx, ebp
jbe 0x5269ea
lea ebx, [ebx + eax + 2]
cmp byte [ebx], 0xa9
jne 0x526502
mov ebx, dword [edx + 0x64]
test ebx, ebx
jg 0x525ea3
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x5264f3
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x84]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x40]
jmp 0x52654e
mov edx, dword [esp + 0xe4]
mov edi, dword [esp + 0x40]
jmp 0x525eeb
mov edx, dword [esp + 0xe4]
mov edi, dword [esp + 0x40]
jmp 0x525eeb
mov edx, dword [esp + 0xe4]
mov edi, dword [esp + 0x40]
mov ebp, dword [edx + 0x90]
test ebp, ebp
jne 0x525bfc
cmp dword [edx + 0x88], ebx
jge 0x525bfc
jmp 0x526990
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x38]
jmp 0x525f29
mov ebx, dword [esp + 0x38]
jmp 0x525f29
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
mov dword [esp + 0x4c], ecx
lea edi, [esp + 0x90]
lea esi, [0x5b6c08]
call fcn.0046510c
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], ebx
mov edi, dword [esp + 0xe8]
test byte [edi], al
mov eax, dword [0x6cff38]
test eax, eax
je 0x525fd7
lea eax, [0x56faa0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x90]
mov dword [esp + 8], eax
call fcn.004113a0
mov edx, dword [esp + 0xe4]
mov edi, dword [esp + 0xe8]
lea esi, [esp + 0x90]
call fcn.0046510c
movzx eax, byte [esp + 0x21]
test al, al
je 0x525ff3
mov byte [edx + 0xbc], 1
mov byte [esp + 0xec], 1
add esp, 0xe0
ret
mov ebx, edx
mov dword [esp + 0x34], ecx
mov ecx, ebp
mov edx, dword [esp + 0xe4]
mov ebp, edi
mov edi, esi
mov esi, eax
mov eax, edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x88], esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ecx
mov edi, dword [edx + 0x54]
mov eax, dword [edx + 0x58]
mov ecx, dword [edx + 0x5c]
mov ebp, dword [edx + 0x60]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
call fcn.005281b0
movzx eax, byte [esp + 0x10]
test al, al
jne 0x525d91
mov edx, dword [esp + 0xe4]
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp ecx, eax
jbe 0x526a20
mov ebx, dword [edx + 0x54]
lea ebp, [ebx + eax]
cmp byte [ebp], 0x3a
je 0x526082
xor eax, eax
jmp 0x5260a6
mov ebp, dword [edx + 0x5c]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
inc eax
mov dword [esp + 0xc], eax
call fcn.005281b0
movzx eax, byte [esp + 0x10]
mov edx, dword [esp + 0xe4]
test al, al
jne 0x525d98
mov ebx, dword [edx + 0x90]
test ebx, ebx
jle 0x526103
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp ecx, eax
jbe 0x526a1b
mov ebx, dword [edx + 0x54]
movzx ebx, byte [ebx + eax]
cmp bl, 0x2c
je 0x525d98
cmp bl, 0x3f
je 0x525d98
cmp bl, 0x5b
je 0x525d98
cmp bl, 0x5d
je 0x525d98
cmp bl, 0x7b
je 0x525d98
cmp bl, 0x7d
je 0x525d98
movzx ebx, byte [esp + 0x21]
test bl, bl
je 0x526112
mov ebp, dword [esp + 0x24]
jmp 0x526126
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x526428
test bl, bl
je 0x526385
mov ebx, dword [esp + 0x3c]
test ebx, ebx
jbe 0x526a12
mov eax, dword [esp + 0x8c]
cmp byte [eax], 0xa
jne 0x526253
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x5261b1
mov ecx, dword [esp + 0x34]
inc ecx
mov ebx, dword [esp + 0x38]
cmp ebx, ecx
jb 0x526160
mov esi, dword [esp + 0x88]
jmp 0x5261a7
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x557560]
mov dword [esp + 0x10], eax
call fcn.0044b670
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0xe4]
mov ebp, dword [esp + 0x24]
mov byte [ecx + esi - 1], 0x20
jmp 0x526370
mov ebx, dword [esp + 0x34]
lea esi, [ebx + ecx]
mov edi, dword [esp + 0x38]
cmp edi, esi
jae 0x526204
mov eax, dword [esp + 0x88]
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 esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x88], esi
mov edi, ebx
mov esi, eax
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x88]
lea edx, [eax + ebx]
mov dword [esp], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004653a0
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0xe4]
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x88]
jmp 0x526370
mov ecx, dword [esp + 0x34]
lea esi, [ecx + ebx]
mov edi, dword [esp + 0x38]
cmp edi, esi
jae 0x5262ad
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebx
lea eax, [0x557560]
mov dword [esp + 0x10], eax
call fcn.0044b670
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov edi, ebx
mov dword [esp + 0x88], esi
mov esi, eax
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edi
mov edx, dword [esp + 0x88]
add ecx, edx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.004653a0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
lea edx, [ecx + eax]
mov ebx, dword [esp + 0x38]
cmp ebx, edx
jb 0x5262ea
mov ebp, dword [esp + 0x88]
jmp 0x526327
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
lea eax, [0x557560]
mov dword [esp + 0x10], eax
call fcn.0044b670
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov ebp, eax
mov ebx, edi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x88], ebp
add eax, ebp
mov dword [esp], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004653a0
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0xe4]
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x88]
xor edi, edi
xor edi, edi
mov dword [esp + 0x3c], edi
xor edi, edi
mov dword [esp + 0x2c], edi
xor edi, edi
jmp 0x52643c
mov eax, dword [esp + 0x34]
lea ecx, [eax + ebp]
mov esi, dword [esp + 0x38]
cmp esi, ecx
jb 0x52639d
mov edi, dword [esp + 0x88]
jmp 0x5263da
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebp
lea eax, [0x557560]
mov dword [esp + 0x10], eax
call fcn.0044b670
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x24]
mov edi, esi
mov esi, ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x88], edi
mov dword [esp + 0x38], esi
add eax, edi
mov dword [esp], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004653a0
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x88]
movzx edi, byte [esp + 0x21]
xor ebp, ebp
jmp 0x52643c
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x88]
movzx edi, byte [esp + 0x21]
xchg edi, eax
mov byte [esp + 0x21], al
xchg edi, eax
mov dword [esp + 0x24], ebp
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
call fcn.0051b040
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xe4]
mov ebp, dword [ebx + 0x80]
mov esi, dword [ebx + 0x88]
mov edi, dword [ebx + 0x84]
cmp dword [ebx + 0x64], 2
jge 0x526002
mov dword [esp + 0x70], edx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0xdc], eax
mov dword [esp + 0x68], ebp
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], edi
mov dword [esp], ebx
mov dword [esp + 4], 2
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x5264e4
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
jmp 0x526002
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
jmp 0x525f29
mov ebx, dword [esp + 0x44]
xchg ebp, eax
mov byte [esp + 0x21], al
xchg ebp, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x8c]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov eax, dword [edx + 0x58]
mov ecx, dword [edx + 0x60]
cmp eax, ecx
jbe 0x5269df
mov dword [esp + 0x8c], esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x84], ebp
mov ebp, dword [edx + 0x54]
movzx esi, byte [ebp + ecx]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x526684
xchg esi, eax
cmp al, 9
xchg esi, eax
jne 0x52659a
xchg esi, eax
cmp al, 0x20
xchg esi, eax
jmp 0x526684
xchg esi, eax
cmp al, 0xd
xchg esi, eax
jne 0x5265ab
xchg esi, eax
cmp al, 0x20
xchg esi, eax
jmp 0x526684
xchg esi, eax
cmp al, 0xa
xchg esi, eax
jne 0x5265bc
xchg esi, eax
cmp al, 0x20
xchg esi, eax
jmp 0x526684
xchg esi, eax
cmp al, 0xc2
xchg esi, eax
jne 0x5265e9
lea edi, [ecx + 1]
cmp eax, edi
jbe 0x5269d6
lea edi, [ebp + ecx + 1]
cmp byte [edi], 0x85
jne 0x5265e5
xchg esi, eax
cmp al, 0x20
xchg esi, eax
mov edi, dword [esp + 0x40]
jmp 0x526684
mov edi, dword [esp + 0x40]
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x525eeb
lea edi, [ecx + 1]
cmp eax, edi
jbe 0x5269cd
lea edx, [ebp + ecx + 1]
movzx edx, byte [edx]
cmp dl, 0x80
jne 0x526640
lea ebx, [ecx + 2]
cmp eax, ebx
jbe 0x5269c4
lea ebx, [ebp + ecx + 2]
cmp byte [ebx], 0xa8
jne 0x526635
xchg esi, eax
cmp al, 0x20
xchg esi, eax
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
jmp 0x526684
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
mov ebx, dword [esp + 0x44]
jmp 0x526645
xchg esi, eax
cmp al, 0xe2
xchg esi, eax
jne 0x525ee0
cmp eax, edi
jbe 0x5269bb
cmp dl, 0x80
jne 0x525ed3
lea edx, [ecx + 2]
cmp eax, edx
jbe 0x5269b2
lea edx, [ebp + ecx + 2]
cmp byte [edx], 0xa9
jne 0x525ec6
xchg esi, eax
cmp al, 0x20
xchg esi, eax
mov edx, dword [esp + 0xe4]
mov edi, dword [esp + 0x40]
je 0x526691
xchg esi, eax
cmp al, 9
xchg esi, eax
jne 0x526789
movzx ebp, byte [esp + 0x21]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x52673d
cmp dword [edx + 0x88], ebx
jge 0x5266b9
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x5268e4
xchg ebp, eax
test al, al
xchg ebp, eax
jmp 0x5266bd
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x52673d
inc dword [edx + 0x80]
inc dword [edx + 0x88]
dec dword [edx + 0x64]
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp ecx, eax
jbe 0x5269ad
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + eax]
test cl, 0x80
jne 0x5266ef
mov ecx, 1
jmp 0x526724
mov esi, ecx
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x526700
mov ecx, 2
jmp 0x526724
mov ecx, esi
and esi, 0xfffffff0
xchg esi, eax
cmp al, 0xe0
xchg esi, eax
jne 0x526713
mov ecx, 3
jmp 0x526724
and ecx, 0xfffffff8
cmp cl, 0xf0
jne 0x526722
mov ecx, 4
jmp 0x526724
xor ecx, ecx
add eax, ecx
mov dword [edx + 0x60], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x80]
jmp 0x52687f
mov dword [esp], edx
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
call fcn.0051b040
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x44]
movzx ebp, byte [esp + 0x21]
mov edi, dword [esp + 0x40]
mov esi, eax
mov eax, edx
mov edx, dword [esp + 0xe4]
jmp 0x52687f
cmp dword [edx + 0x64], 2
jge 0x5267bb
mov dword [esp], edx
mov dword [esp + 4], 2
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x526981
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
movzx eax, byte [esp + 0x21]
test al, al
je 0x526818
mov dword [esp], edx
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
call fcn.0051b270
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x8c]
mov ebx, eax
mov dword [esp + 0x84], ebp
mov eax, dword [esp + 0x3c]
mov ebp, ecx
movzx ecx, byte [esp + 0x21]
jmp 0x526852
mov dword [esp], edx
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
call fcn.0051b270
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, 1
xor edx, edx
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ebp
mov ebx, dword [esp + 0x44]
mov ebp, ecx
mov ecx, edx
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0xe4]
mov ebx, dword [edx + 0x64]
test ebx, ebx
jg 0x52651f
mov dword [esp + 0x5c], edi
mov dword [esp + 0xd8], esi
mov dword [esp + 0x58], ecx
xchg ebp, eax
mov byte [esp + 0x22], al
xchg ebp, eax
mov dword [esp + 0x54], eax
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x526972
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0xe4]
movzx ebp, byte [esp + 0x22]
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0x5c]
jmp 0x52651f
nop
mov dword [edx], 3
mov dword [edx + 0x24], 0x1d
mov eax, dword [0x6cff38]
test eax, eax
je 0x526906
mov eax, dword [edx + 0x20]
call fcn.00464ab0
mov dword [edi], eax
lea eax, [0x583562]
mov dword [edx + 0x20], eax
mov eax, dword [esp + 0x74]
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x7c]
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0x78]
mov dword [edx + 0x30], eax
mov dword [edx + 8], 0x2f
mov eax, dword [0x6cff38]
test eax, eax
je 0x52693f
mov eax, dword [edx + 4]
call fcn.00464ab0
mov dword [edi], eax
lea eax, [0x587e2d]
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 + 0xec], 0
add esp, 0xe0
ret
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
jmp 0x525f29
call fcn.00464b30
mov ecx, eax
mov eax, edx
call fcn.00464b30
mov ecx, eax
mov eax, edi
call fcn.00464b30
mov ecx, eax
mov eax, ebx
call fcn.00464b30
mov ecx, eax
mov eax, edi
call fcn.00464b30
mov ecx, eax
mov eax, edi
call fcn.00464b30
mov edx, eax
mov eax, ecx
mov ecx, edx
call fcn.00464b30
mov eax, ebp
call fcn.00464b30
mov eax, esi
call fcn.00464b30
mov eax, edi
call fcn.00464b30
mov eax, esi
call fcn.00464b30
mov eax, esi
call fcn.00464b30
call fcn.00464b30
xor eax, eax
mov ecx, eax
call fcn.00464b30
call fcn.00464b30
call fcn.00464b30
mov eax, esi
mov ecx, ebx
call fcn.00464b30
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
nop
call fcn.004636b0
jmp fcn.00525b40