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

Disassembly:
push 0xffffffffffffffff
push 0x5dd413
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xdc
push ebx
push ebp
push esi
push edi
mov edi, ecx
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x609448
call fcn.00558100
push ecx
mov dword [esp + 0x104], 0
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x609558
call fcn.00558100
or esi, 0xffffffff
mov ecx, 0x619a58
mov dword [esp + 0x104], esi
call fcn.00543af0
mov al, byte [0x619c14]
test al, al
je 0x5266d1
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x60f0dc
call fcn.00558100
mov ecx, dword [0x619a5c]
call fcn.00548d80
mov al, byte [esp + 0x13]
sub esp, 0x10
mov ebx, esp
mov dword [esp + 0x24], esp
push 0
mov ecx, ebx
mov byte [ebx], al
call fcn.00401850
mov edi, 0x619c18
mov ecx, esi
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
mov ecx, ebx
push ebp
call fcn.004018c0
test al, al
je 0x526574
mov edi, dword [ebx + 4]
mov ecx, ebp
mov edx, ecx
mov esi, 0x619c18
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 4]
mov dword [ebx + 8], ebp
add ebp, eax
or esi, 0xffffffff
mov byte [ebp], 0
push ecx
mov dword [esp + 0x108], 1
mov ecx, esp
mov dword [esp + 0x44], esp
push 6
push 0x60f0d4
call fcn.00558100
mov ecx, dword [0x619a5c]
mov dword [esp + 0x108], esi
call fcn.00548e50
mov al, byte [esp + 0x13]
sub esp, 0x10
mov ebx, esp
mov dword [esp + 0x24], esp
push 0
mov ecx, ebx
mov byte [ebx], al
call fcn.00401850
mov edi, 0x619c18
mov ecx, esi
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
mov ecx, ebx
push ebp
call fcn.004018c0
test al, al
je 0x526600
mov edi, dword [ebx + 4]
mov ecx, ebp
mov edx, ecx
mov esi, 0x619c18
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 8], ebp
mov ebx, dword [ebx + 4]
add ebx, ebp
or esi, 0xffffffff
mov byte [ebx], 0
push ecx
mov dword [esp + 0x108], 2
mov ecx, esp
mov dword [esp + 0x44], esp
push 6
push 0x60f0cc
call fcn.00558100
mov ecx, dword [0x619a5c]
mov dword [esp + 0x108], esi
call fcn.00548e50
mov al, byte [esp + 0x13]
sub esp, 0x10
mov ebx, esp
mov dword [esp + 0x24], esp
push 0
mov ecx, ebx
mov byte [ebx], al
call fcn.00401850
mov edi, 0x619c18
mov ecx, esi
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
mov ecx, ebx
push ebp
call fcn.004018c0
test al, al
je 0x52668d
mov edi, dword [ebx + 4]
mov ecx, ebp
mov edx, ecx
mov esi, 0x619c18
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 4]
mov dword [ebx + 8], ebp
add ebp, eax
or esi, 0xffffffff
mov byte [ebp], 0
push ecx
mov dword [esp + 0x108], 3
mov ecx, esp
mov dword [esp + 0x44], esp
push 6
push 0x60f0c4
call fcn.00558100
mov ecx, dword [0x619a5c]
mov dword [esp + 0x108], esi
call fcn.00548e50
mov ecx, dword [0x619a5c]
call fcn.00549580
mov ax, 1
jmp 0x5274d0
push 8
push 0x60f0b8
lea ecx, [esp + 0x3c]
call fcn.00558100
push 0
lea ecx, [esp + 0x30]
mov dword [esp + 0xf8], 4
call fcn.00558090
lea eax, [esp + 0x34]
mov ecx, edi
push eax
mov byte [esp + 0xf8], 5
call fcn.00529c50
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0
call fcn.00558090
lea ecx, [esp + 0x34]
lea edx, [esp + 0x3c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
mov byte [esp + 0x108], 6
call fcn.00558070
mov ecx, edi
mov byte [esp + 0x104], 5
call fcn.00529cc0
test al, al
je 0x52675b
lea ecx, [esp + 0x2c]
call fcn.00558520
cmp ax, 6
jge 0x5267b3
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0
call fcn.00558090
lea eax, [esp + 0x34]
lea edx, [esp + 0x3c]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
mov byte [esp + 0x108], 7
call fcn.00558070
mov ecx, edi
mov byte [esp + 0x104], 5
call fcn.00529cc0
test al, al
je 0x527468
lea ecx, [esp + 0x2c]
call fcn.00558520
cmp ax, 6
jl 0x527468
lea ecx, [esp + 0x2c]
call fcn.00558520
movsx ecx, ax
sub ecx, 5
mov eax, 0x55555556
imul ecx
mov edi, edx
push 4
mov eax, edi
lea ecx, [esp + 0x30]
shr eax, 0x1f
add edi, eax
call fcn.00558380
and eax, 0xff
cmp eax, edi
jge 0x5267f9
push 4
lea ecx, [esp + 0x30]
call fcn.00558380
mov bl, al
mov byte [esp + 0x2b], bl
jmp 0x52681e
lea ecx, [esp + 0x2c]
call fcn.00558520
movsx ecx, ax
sub ecx, 5
mov eax, 0x55555556
imul ecx
mov ecx, edx
mov eax, edx
shr ecx, 0x1f
add eax, ecx
mov byte [esp + 0x2b], al
mov bl, al
test bl, bl
push 0
jne 0x526854
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x609448
call fcn.00558100
push ecx
mov byte [esp + 0x104], 9
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x609538
jmp 0x527495
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x60f0dc
call fcn.00558100
mov ecx, dword [0x619a5c]
call fcn.00548d80
push 6
push 0x60f0b0
lea ecx, [esp + 0x40]
call fcn.00558100
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xf8], 0xa
mov byte [esp + 0x1c], dl
call fcn.00401850
mov edi, 0x619c18
mov ecx, esi
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.004018c0
test al, al
je 0x5268e2
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov eax, ecx
mov esi, 0x619c18
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ebp
mov byte [ecx + ebp], 0
test bl, bl
mov byte [esp + 0xf4], 0xb
mov byte [esp + 0x13], 0
jbe 0x5273eb
movzx bp, byte [esp + 0x13]
lea ecx, [esp + 0x2c]
lea edx, [ebp + ebp*2 + 5]
push edx
call fcn.00558380
push eax
push 4
lea ecx, [esp + 0x40]
call fcn.005584a0
lea eax, [ebp + ebp*2 + 6]
lea ecx, [esp + 0x2c]
push eax
call fcn.00558380
push eax
push 5
lea ecx, [esp + 0x40]
call fcn.005584a0
mov edi, 0x619c18
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x1c]
push ebx
call fcn.004018c0
test al, al
je 0x526977
mov edi, dword [esp + 0x1c]
mov ecx, ebx
mov edx, ecx
mov esi, 0x619c18
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [eax + ebx], 0
lea ebp, [ebp + ebp*2 + 7]
lea ecx, [esp + 0x2c]
push ebp
call fcn.00558380
and eax, 0xf0
cmp eax, 0x20
je 0x526a99
cmp eax, 0x60
jne 0x526b57
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x60f0a8
call fcn.00558100
lea ecx, [esp + 0xd0]
push ecx
call fcn.00560f40
add esp, 8
mov edx, dword [0x5e5150]
xor ebx, ebx
push edx
push ebx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x100], 0xd
call fcn.00510800
mov eax, dword [esp + 0xd0]
mov byte [esp + 0xf4], 0xb
cmp eax, ebx
je 0x526a0b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x526a02
cmp al, 0xff
je 0x526a02
dec al
mov byte [ecx], al
jmp 0x526a0b
push ecx
call fcn.005bc500
add esp, 4
mov edi, 0x60f0a4
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x20]
repne scasb al, byte es:[edi]
mov eax, dword [0x5e5150]
mov dword [esp + 0xd0], ebx
not ecx
dec ecx
sub eax, edx
mov esi, ecx
mov dword [esp + 0xd4], ebx
cmp eax, esi
mov dword [esp + 0xd8], ebx
ja 0x526a45
call fcn.005bc520
cmp esi, ebx
jbe 0x526b57
mov ecx, dword [esp + 0x20]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x1c]
push ebx
call fcn.004018c0
test al, al
je 0x526b57
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, esi
mov esi, 0x60f0a4
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [eax + ebx], 0
jmp 0x526b57
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x60f09c
call fcn.00558100
lea ecx, [esp + 0xe0]
push ecx
call fcn.00560f40
add esp, 8
mov edx, dword [0x5e5150]
lea ecx, [esp + 0x18]
push edx
push 0
push eax
mov byte [esp + 0x100], 0xc
call fcn.00510800
push 1
lea ecx, [esp + 0xe0]
mov byte [esp + 0xf8], 0xb
call fcn.00401850
mov edi, 0x60f0a4
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x20]
repne scasb al, byte es:[edi]
mov eax, dword [0x5e5150]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x526b12
call fcn.005bc520
test esi, esi
jbe 0x526b57
mov ecx, dword [esp + 0x20]
push 0
lea ebx, [ecx + esi]
lea ecx, [esp + 0x1c]
push ebx
call fcn.004018c0
test al, al
je 0x526b57
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, esi
mov esi, 0x60f0a4
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.004018a0
push ebp
lea ecx, [esp + 0x30]
call fcn.00558380
and eax, 0xff
dec eax
cmp eax, 0xd
ja case.0x526b70.6
jmp dword [eax*4 + 0x5274ec]
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x60f094
call fcn.00558100
lea eax, [esp + 0x40]
push eax
call fcn.00560f40
add esp, 8
mov ecx, dword [0x5e5150]
xor esi, esi
push ecx
push esi
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x100], 0xe
call fcn.00510800
mov eax, dword [esp + 0x40]
mov byte [esp + 0xf4], 0xb
cmp eax, esi
je 0x526bef
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x526be6
cmp al, 0xff
je 0x526be6
dec al
mov byte [ecx], al
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
jmp case.0x526b70.6
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
jmp case.0x526b70.6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x60f08c
call fcn.00558100
lea edx, [esp + 0x70]
push edx
call fcn.00560f40
add esp, 8
mov esi, eax
mov ecx, dword [0x5e5150]
mov eax, dword [esi + 8]
mov ebx, ecx
mov byte [esp + 0xf4], 0xf
cmp eax, ebx
jae 0x526c3b
mov ebx, eax
sub ecx, dword [esp + 0x20]
cmp ecx, ebx
ja 0x526c48
call fcn.005bc520
xor edi, edi
cmp ebx, edi
jbe 0x526c97
mov eax, dword [esp + 0x20]
push edi
lea ecx, [esp + 0x1c]
lea ebp, [eax + ebx]
push ebp
call fcn.004018c0
test al, al
je 0x526c97
mov esi, dword [esi + 4]
cmp esi, edi
jne 0x526c70
mov esi, 0x5e514c
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push ebp
lea edi, [edx + ecx]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.004018a0
xor edi, edi
mov eax, dword [esp + 0x70]
mov byte [esp + 0xf4], 0xb
cmp eax, edi
je 0x526cd3
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x526cca
cmp al, 0xff
je 0x526cca
dec al
mov byte [ecx], al
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
jmp case.0x526b70.6
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
jmp case.0x526b70.6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x60f084
call fcn.00558100
lea ecx, [esp + 0xb0]
push ecx
call fcn.00560f40
add esp, 8
mov esi, eax
mov ecx, dword [0x5e5150]
mov eax, dword [esi + 8]
mov ebx, ecx
mov byte [esp + 0xf4], 0x10
cmp eax, ebx
jae 0x526d22
mov ebx, eax
sub ecx, dword [esp + 0x20]
cmp ecx, ebx
ja 0x526d2f
call fcn.005bc520
xor edi, edi
cmp ebx, edi
jbe 0x526d7e
mov edx, dword [esp + 0x20]
push edi
lea ecx, [esp + 0x1c]
lea ebp, [edx + ebx]
push ebp
call fcn.004018c0
test al, al
je 0x526d7e
mov esi, dword [esi + 4]
cmp esi, edi
jne 0x526d57
mov esi, 0x5e514c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push ebp
lea edi, [ecx + eax]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.004018a0
xor edi, edi
mov eax, dword [esp + 0xb0]
mov byte [esp + 0xf4], 0xb
cmp eax, edi
je 0x526dc6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x526dbd
cmp al, 0xff
je 0x526dbd
dec al
mov byte [ecx], al
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb8], edi
jmp case.0x526b70.6
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb8], edi
jmp case.0x526b70.6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x60f07c
call fcn.00558100
lea eax, [esp + 0x90]
push eax
call fcn.00560f40
add esp, 8
mov esi, eax
mov ecx, dword [0x5e5150]
mov eax, dword [esi + 8]
mov ebx, ecx
mov byte [esp + 0xf4], 0x11
cmp eax, ebx
jae 0x526e1e
mov ebx, eax
sub ecx, dword [esp + 0x20]
cmp ecx, ebx
ja 0x526e2b
call fcn.005bc520
xor edi, edi
cmp ebx, edi
jbe 0x526e7a
mov ecx, dword [esp + 0x20]
push edi
lea ebp, [ecx + ebx]
lea ecx, [esp + 0x1c]
push ebp
call fcn.004018c0
test al, al
je 0x526e7a
mov esi, dword [esi + 4]
cmp esi, edi
jne 0x526e53
mov esi, 0x5e514c
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, ebx
push ebp
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.004018a0
xor edi, edi
mov eax, dword [esp + 0x90]
mov byte [esp + 0xf4], 0xb
cmp eax, edi
je 0x526ec2
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x526eb9
cmp al, 0xff
je 0x526eb9
dec al
mov byte [ecx], al
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], edi
jmp case.0x526b70.6
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], edi
jmp case.0x526b70.6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x60f074
call fcn.00558100
lea eax, [esp + 0x50]
push eax
call fcn.00560f40
add esp, 8
mov esi, eax
mov ecx, dword [0x5e5150]
mov eax, dword [esi + 8]
mov ebx, ecx
mov byte [esp + 0xf4], 0x12
cmp eax, ebx
jae 0x526f17
mov ebx, eax
sub ecx, dword [esp + 0x20]
cmp ecx, ebx
ja 0x526f24
call fcn.005bc520
xor edi, edi
cmp ebx, edi
jbe 0x526f73
mov ecx, dword [esp + 0x20]
push edi
lea ebp, [ecx + ebx]
lea ecx, [esp + 0x1c]
push ebp
call fcn.004018c0
test al, al
je 0x526f73
mov esi, dword [esi + 4]
cmp esi, edi
jne 0x526f4c
mov esi, 0x5e514c
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, ebx
push ebp
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.004018a0
xor edi, edi
mov eax, dword [esp + 0x50]
mov byte [esp + 0xf4], 0xb
cmp eax, edi
je 0x526faf
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x526fa6
cmp al, 0xff
je 0x526fa6
dec al
mov byte [ecx], al
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
jmp case.0x526b70.6
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
jmp case.0x526b70.6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x60f06c
call fcn.00558100
lea eax, [esp + 0x60]
push eax
call fcn.00560f40
add esp, 8
mov esi, eax
mov ecx, dword [0x5e5150]
mov eax, dword [esi + 8]
mov ebx, ecx
mov byte [esp + 0xf4], 0x13
cmp eax, ebx
jae 0x526ffb
mov ebx, eax
sub ecx, dword [esp + 0x20]
cmp ecx, ebx
ja 0x527008
call fcn.005bc520
xor edi, edi
cmp ebx, edi
jbe 0x527057
mov ecx, dword [esp + 0x20]
push edi
lea ebp, [ecx + ebx]
lea ecx, [esp + 0x1c]
push ebp
call fcn.004018c0
test al, al
je 0x527057
mov esi, dword [esi + 4]
cmp esi, edi
jne 0x527030
mov esi, 0x5e514c
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, ebx
push ebp
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.004018a0
xor edi, edi
mov eax, dword [esp + 0x60]
mov byte [esp + 0xf4], 0xb
cmp eax, edi
je 0x527093
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x52708a
cmp al, 0xff
je 0x52708a
dec al
mov byte [ecx], al
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
jmp case.0x526b70.6
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
jmp case.0x526b70.6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x60f064
call fcn.00558100
lea eax, [esp + 0x80]
push eax
call fcn.00560f40
add esp, 8
mov esi, eax
mov ecx, dword [0x5e5150]
mov eax, dword [esi + 8]
mov ebx, ecx
mov byte [esp + 0xf4], 0x14
cmp eax, ebx
jae 0x5270e2
mov ebx, eax
sub ecx, dword [esp + 0x20]
cmp ecx, ebx
ja 0x5270ef
call fcn.005bc520
xor edi, edi
cmp ebx, edi
jbe 0x52713e
mov ecx, dword [esp + 0x20]
push edi
lea ebp, [ecx + ebx]
lea ecx, [esp + 0x1c]
push ebp
call fcn.004018c0
test al, al
je 0x52713e
mov esi, dword [esi + 4]
cmp esi, edi
jne 0x527117
mov esi, 0x5e514c
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, ebx
push ebp
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.004018a0
xor edi, edi
mov eax, dword [esp + 0x80]
mov byte [esp + 0xf4], 0xb
cmp eax, edi
je 0x527186
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x52717d
cmp al, 0xff
je 0x52717d
dec al
mov byte [ecx], al
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
jmp case.0x526b70.6
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
jmp case.0x526b70.6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x60f05c
call fcn.00558100
lea eax, [esp + 0xa0]
push eax
call fcn.00560f40
add esp, 8
mov esi, eax
mov ecx, dword [0x5e5150]
mov eax, dword [esi + 8]
mov ebx, ecx
mov byte [esp + 0xf4], 0x15
cmp eax, ebx
jae 0x5271de
mov ebx, eax
sub ecx, dword [esp + 0x20]
cmp ecx, ebx
ja 0x5271eb
call fcn.005bc520
xor edi, edi
cmp ebx, edi
jbe 0x52723a
mov ecx, dword [esp + 0x20]
push edi
lea ebp, [ecx + ebx]
lea ecx, [esp + 0x1c]
push ebp
call fcn.004018c0
test al, al
je 0x52723a
mov esi, dword [esi + 4]
cmp esi, edi
jne 0x527213
mov esi, 0x5e514c
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, ebx
push ebp
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.004018a0
xor edi, edi
mov eax, dword [esp + 0xa0]
mov byte [esp + 0xf4], 0xb
cmp eax, edi
je 0x527282
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x527279
cmp al, 0xff
je 0x527279
dec al
mov byte [ecx], al
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], edi
jmp case.0x526b70.6
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], edi
jmp case.0x526b70.6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x60f054
call fcn.00558100
lea eax, [esp + 0xc0]
push eax
call fcn.00560f40
add esp, 8
mov esi, eax
mov ecx, dword [0x5e5150]
mov eax, dword [esi + 8]
mov ebx, ecx
mov byte [esp + 0xf4], 0x16
cmp eax, ebx
jae 0x5272da
mov ebx, eax
sub ecx, dword [esp + 0x20]
cmp ecx, ebx
ja 0x5272e7
call fcn.005bc520
xor edi, edi
cmp ebx, edi
jbe 0x527336
mov ecx, dword [esp + 0x20]
push edi
lea ebp, [ecx + ebx]
lea ecx, [esp + 0x1c]
push ebp
call fcn.004018c0
test al, al
je 0x527336
mov esi, dword [esi + 4]
cmp esi, edi
jne 0x52730f
mov esi, 0x5e514c
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, ebx
push ebp
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.004018a0
xor edi, edi
mov eax, dword [esp + 0xc0]
mov byte [esp + 0xf4], 0xb
cmp eax, edi
je 0x527366
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x52735d
cmp al, 0xff
je 0x52735d
dec al
mov byte [ecx], al
jmp 0x527366
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0xc0], edi
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc8], edi
mov al, byte [esp + 0x18]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x24], esp
mov byte [ecx], al
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov edx, dword [0x5e5150]
push edx
push eax
lea eax, [esp + 0x30]
push eax
call fcn.004120f0
push ecx
lea edx, [esp + 0x4c]
mov ecx, esp
mov dword [esp + 0x44], esp
push edx
mov byte [esp + 0x10c], 0x17
call fcn.00558070
mov ecx, dword [0x619a5c]
mov byte [esp + 0x108], 0xb
call fcn.00548e50
mov al, byte [esp + 0x13]
mov cl, byte [esp + 0x2b]
inc al
cmp al, cl
mov byte [esp + 0x13], al
jb 0x5268f7
mov bl, cl
mov ecx, dword [0x619a5c]
xor edi, edi
call fcn.00549580
mov eax, dword [esp + 0x1c]
cmp eax, edi
movzx si, bl
je 0x527421
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x527418
cmp al, 0xff
je 0x527418
dec al
mov byte [ecx], al
jmp 0x527421
push ecx
call fcn.005bc500
add esp, 4
lea ecx, [esp + 0x38]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov byte [esp + 0xf4], 5
call fcn.005581a0
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], 4
call fcn.005581a0
lea ecx, [esp + 0x34]
mov dword [esp + 0xf4], 0xffffffff
call fcn.005581a0
mov ax, si
jmp 0x5274d0
push 0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x609448
call fcn.00558100
push ecx
mov byte [esp + 0x104], 8
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x609540
call fcn.00558100
mov ecx, 0x619a58
mov byte [esp + 0x104], 5
call fcn.00543af0
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf4], 4
call fcn.005581a0
lea ecx, [esp + 0x34]
mov dword [esp + 0xf4], esi
call fcn.005581a0
xor ax, ax
mov ecx, dword [esp + 0xec]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xe8
ret