Function at 0x5a8800
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x6bfa3e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf0
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x30], 0
mov al, byte [esp + 0x37]
push 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x10c], 1
mov byte [esp + 0x18], al
call fcn.004138a0
lea ecx, [esp + 0x58]
mov byte [esp + 0x108], 2
call fcn.0060d180
lea ecx, [esp + 0x7c]
mov byte [esp + 0x108], 3
call fcn.00546ec0
mov ecx, dword [0x710484]
mov edx, dword [0x710488]
mov al, byte [0x71048c]
mov dword [esp + 0x4c], ecx
push 6
push 0x704698
lea ecx, [esp + 0x18]
mov byte [esp + 0x110], 4
mov dword [esp + 0x58], edx
mov byte [esp + 0x5c], al
call fcn.0060ff10
mov ebx, 5
lea ecx, [esp + 0x114]
push ebx
mov byte [esp + 0x10c], bl
call fcn.00610190
mov byte [esp + 0x24], al
mov al, byte [edi + 0xc]
cmp al, 0xff
jne 0x5a8986
mov byte [edi + 0xc], 1
mov al, byte [0x71bb5c]
test al, al
je 0x5a8947
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0
call fcn.0060fea0
lea esi, [edi + 8]
mov ecx, esi
call fcn.006101a0
push 0x80
mov ecx, esi
call fcn.00610310
push 0xf1
mov ecx, esi
call fcn.00610310
push 0x18
mov ecx, esi
call fcn.00610310
push 0x60
mov ecx, esi
call fcn.00610310
push 0x61
mov ecx, esi
call fcn.00610310
push 1
mov ecx, esi
call fcn.00610310
mov ebp, 0x5e
mov al, byte [0x710478]
mov cl, al
inc al
push ecx
mov ecx, esi
mov byte [0x710478], al
call fcn.00610310
dec ebp
jne 0x5a892c
jmp 0x5a8986
sub esp, 0x24
lea edx, [esp + 0x70]
mov ecx, esp
mov dword [esp + 0x4c], esp
push 1
push edx
push ecx
lea ecx, [esp + 0xac]
call fcn.00547f90
lea ecx, [esp + 0x7c]
call fcn.0060d330
push ecx
lea ecx, [esp + 0x5c]
mov eax, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.0060d6b0
lea ecx, [edi + 8]
call fcn.006101a0
xor ebp, ebp
lea esi, [edi + 8]
push ebp
mov ecx, esi
call fcn.00610190
mov cl, 0x80
cmp cl, al
mov ecx, esi
sbb edi, edi
inc edi
call fcn.00610330
cmp ax, 0x14
jge 0x5a8a99
push 0x70386c
lea edx, [esp + 0x3c]
push 0x703868
push edx
call fcn.00698355
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebp, ecx
lea ecx, [esp + 0x18]
push ebp
call fcn.00414210
test al, al
je 0x5a8a06
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
lea esi, [esp + 0x38]
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 + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], 0
mov esi, dword [esp + 0x110]
mov dl, byte [esp + 0x14]
push 0
mov ecx, esi
mov byte [esi], dl
call fcn.004138a0
mov eax, dword [0x6ce1fc]
lea ecx, [esp + 0x14]
push eax
push 0
push ecx
mov ecx, esi
call fcn.004136a0
mov dword [esp + 0x30], 1
lea ecx, [esp + 0x10]
mov byte [esp + 0x108], 4
call fcn.0060ffb0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x108], 3
call fcn.00546f80
lea ecx, [esp + 0x58]
mov byte [esp + 0x108], 2
call fcn.0060d280
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x10c], 1
call fcn.004138a0
lea ecx, [esp + 0x114]
mov byte [esp + 0x108], 0
call fcn.0060ffb0
mov eax, esi
jmp 0x5a940c
mov edx, dword [esp + 0x24]
and edx, 0xff
lea eax, [edx - 1]
cmp eax, 0x10
ja case.default.0x5a8aaf
jmp dword [eax*4 + 0x5a9428]
lea eax, [edi + 6]
mov ecx, esi
push eax
call fcn.00610190
and eax, 0xff
add edi, 5
mov ecx, eax
push edi
shl ecx, 6
sub ecx, eax
mov eax, 0x80808081
imul ecx
mov ebp, edx
add ebp, ecx
sar ebp, 7
mov ecx, ebp
shr ecx, 0x1f
add ebp, ecx
mov ecx, esi
call fcn.00610190
and eax, 0xff
shl eax, 6
add ebp, eax
mov dword [esp + 0x24], ebp
fild dword [esp + 0x24]
fstp qword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push ecx
push edx
lea eax, [esp + 0x40]
push str._.2f
push eax
call fcn.00698355
add esp, 0x10
jmp 0x5a8d2c
add edi, 7
mov ecx, esi
push edi
call fcn.00610190
and eax, 0xff
jmp 0x5a8d17
lea edx, [edi + 9]
mov ecx, esi
push edx
call fcn.00610190
and eax, 0xff
add edi, 8
mov ecx, eax
push edi
shl ecx, 6
sub ecx, eax
mov eax, 0x80808081
imul ecx
mov ebp, edx
add ebp, ecx
mov ecx, esi
sar ebp, 7
mov eax, ebp
shr eax, 0x1f
add ebp, eax
call fcn.00610190
and eax, 0xff
shl eax, 6
add ebp, eax
mov dword [esp + 0x24], ebp
fild dword [esp + 0x24]
jmp 0x5a8aff
lea ecx, [edi + 0xb]
push ecx
mov ecx, esi
call fcn.00610190
and eax, 0xff
add edi, 0xa
mov ecx, eax
push edi
shl ecx, 6
sub ecx, eax
mov eax, 0x80808081
imul ecx
mov ebp, edx
add ebp, ecx
mov ecx, esi
sar ebp, 7
mov edx, ebp
shr edx, 0x1f
add ebp, edx
call fcn.00610190
and eax, 0xff
shl eax, 6
add ebp, eax
mov dword [esp + 0x24], ebp
fild dword [esp + 0x24]
jmp 0x5a8aff
mov ecx, esi
call fcn.00610330
cmp ax, 0x19
jge 0x5a8c59
push 0x70386c
lea eax, [esp + 0x3c]
push 0x703868
push eax
call fcn.00698355
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebp, ecx
lea ecx, [esp + 0x18]
push ebp
call fcn.00414210
test al, al
je 0x5a8c3d
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x38]
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 + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [eax + ebp], 0
mov esi, dword [esp + 0x110]
mov cl, byte [esp + 0x14]
xor edi, edi
mov byte [esi], cl
push edi
mov ecx, esi
call fcn.004138a0
jmp 0x5a917d
add edi, 0x18
mov ecx, esi
push edi
call fcn.00610190
and eax, 0xff
cmp eax, 7
ja case.0x5a8c6e.6
jmp dword [eax*4 + 0x5a946c]
push 0x16
jmp 0x5a8c8b
push 0x17
jmp 0x5a8c8b
push 0x18
jmp 0x5a8c8b
push 0x19
jmp 0x5a8c8b
push 0x1a
jmp 0x5a8c8b
push 0x1b
push ebx
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0xa4]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x108], 6
push ecx
push 0
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0xa4]
mov byte [esp + 0x108], bl
test eax, eax
je case.default.0x5a8aaf
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5a90b5
cmp al, 0xff
je 0x5a90b5
dec al
mov byte [ecx], al
jmp case.default.0x5a8aaf
add edi, 0xc
jmp 0x5a8d07
add edi, 0xd
push edi
mov ecx, esi
call fcn.00610190
and eax, 0xff
sub eax, 0x28
mov ebp, eax
push ebp
lea ecx, [esp + 0x3c]
push 0x703498
push ecx
call fcn.00698355
add esp, 0xc
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x5a92ba
lea edi, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
cmp ebp, 0xfffffffd
jbe 0x5a8d52
call fcn.0069788b
mov edi, dword [esp + 0x18]
test edi, edi
je 0x5a9263
mov al, byte [edi - 1]
test al, al
je 0x5a9263
cmp al, 0xff
je 0x5a9263
test ebp, ebp
jne 0x5a928c
dec al
push ebp
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.004138a0
jmp 0x5a92ba
add edi, 0xf
mov ecx, esi
push edi
call fcn.00610190
and eax, 0xff
mov ecx, eax
shl eax, 5
add eax, ecx
lea ecx, [eax + eax*2]
jmp 0x5a9231
add edi, 0x12
mov ecx, esi
push edi
call fcn.00610190
test al, 1
je 0x5a8dbf
push 3
jmp 0x5a8dc1
push 4
push ebx
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0xb4]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x108], 7
push ecx
push 0
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0xb4]
mov byte [esp + 0x108], bl
jmp 0x5a8cdf
add edi, 0x13
mov ecx, esi
push edi
call fcn.00610190
test al, 1
je 0x5a8e2d
push 3
jmp 0x5a8e2f
push 4
push ebx
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0xd4]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x108], 8
push ecx
push 0
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0xd4]
mov byte [esp + 0x108], bl
jmp 0x5a8cdf
add edi, 0x12
mov ecx, esi
push edi
call fcn.00610190
test al, 2
je 0x5a8e9b
push 3
jmp 0x5a8e9d
push 4
push ebx
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0xf4]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x108], 9
push ecx
push 0
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0xf4]
mov byte [esp + 0x108], bl
jmp 0x5a8cdf
add edi, 0x13
mov ecx, esi
push edi
call fcn.00610190
test al, 2
je 0x5a8f09
push 3
jmp 0x5a8f0b
push 4
push ebx
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0xc4]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x108], 0xa
push ecx
push 0
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0xc4]
mov byte [esp + 0x108], bl
jmp 0x5a8cdf
mov ecx, esi
call fcn.00610330
cmp ax, 0x1a
jge 0x5a8ff9
push 0x70386c
lea edx, [esp + 0x3c]
push 0x703868
push edx
call fcn.00698355
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebp, ecx
lea ecx, [esp + 0x18]
push ebp
call fcn.00414210
test al, al
je 0x5a8fd0
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
lea esi, [esp + 0x38]
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 + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], 0
mov esi, dword [esp + 0x110]
mov dl, byte [esp + 0x14]
xor edi, edi
lea ecx, [esp + 0x14]
mov byte [esi], dl
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov eax, dword [0x6ce1fc]
push eax
push edi
push ecx
jmp 0x5a918a
add edi, 0x19
mov ecx, esi
push edi
call fcn.00610190
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6d1930]
jmp 0x5a8aff
mov ecx, esi
call fcn.00610330
cmp ax, 0x1c
jl 0x5a8f75
add edi, 0x1b
mov ecx, esi
push edi
call fcn.00610190
test al, 1
je 0x5a9040
push 0x6b
jmp 0x5a9042
push 0x6c
push ebx
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0xe4]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0x108], 0xb
push ecx
push 0
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0xe4]
mov byte [esp + 0x108], bl
test eax, eax
je case.default.0x5a8aaf
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5a90b5
cmp al, 0xff
je 0x5a90b5
dec al
mov byte [ecx], al
jmp case.default.0x5a8aaf
push ecx
call fcn.00697880
add esp, 4
jmp case.default.0x5a8aaf
add edi, 0xe
mov ecx, esi
push edi
call fcn.00610190
and eax, 0xff
lea ecx, [eax + eax*4]
mov eax, 0x80808081
shl ecx, 2
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
jmp 0x5a8aff
mov ecx, esi
call fcn.00610330
cmp ax, 0x20
jge 0x5a9218
push 0x70386c
lea ecx, [esp + 0x3c]
push 0x703868
push ecx
call fcn.00698355
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebp, ecx
lea ecx, [esp + 0x18]
push ebp
call fcn.00414210
test al, al
je 0x5a9165
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x38]
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 + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [eax + ebp], 0
mov esi, dword [esp + 0x110]
mov cl, byte [esp + 0x14]
xor edi, edi
mov byte [esi], cl
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov edx, dword [0x6ce1fc]
lea eax, [esp + 0x14]
push edx
push edi
push eax
mov ecx, esi
call fcn.004136a0
lea ecx, [esp + 0x10]
mov dword [esp + 0x30], 1
mov byte [esp + 0x108], 4
call fcn.0060ffb0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x108], 3
call fcn.00546f80
lea ecx, [esp + 0x58]
mov byte [esp + 0x108], 2
call fcn.0060d280
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x5a91f1
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5a91e8
cmp al, 0xff
je 0x5a91e8
dec al
mov byte [ecx], al
jmp 0x5a91f1
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x114]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov byte [esp + 0x108], 0
call fcn.0060ffb0
mov eax, esi
jmp 0x5a940c
add edi, 0x1f
mov ecx, esi
push edi
call fcn.00610190
and eax, 0xff
lea ecx, [eax + eax*2]
lea ecx, [eax + ecx*8]
shl ecx, 2
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ebp, edx
jmp case.default.0x5a8aaf
add edi, 0x11
mov ecx, esi
push edi
call fcn.00610190
and eax, 0xff
lea ebp, [eax + eax*4]
jmp case.default.0x5a8aaf
test ebp, ebp
jne 0x5a9274
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
jmp 0x5a92ba
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x5a9281
cmp eax, ebp
jae 0x5a929a
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
push ebp
lea ecx, [esp + 0x18]
call fcn.00414870
mov edi, dword [esp + 0x18]
mov ecx, ebp
lea esi, [esp + 0x38]
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 + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [eax + ebp], 0
mov ebp, dword [esp + 0x110]
mov cl, byte [esp + 0x14]
xor edi, edi
mov byte [ebp], cl
mov ecx, dword [esp + 0x1c]
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
mov eax, dword [0x6ce1fc]
mov ebx, ecx
cmp eax, ebx
jae 0x5a92e4
mov ebx, eax
lea edx, [esp + 0x14]
cmp ebp, edx
jne 0x5a9303
push eax
push ebx
mov ecx, ebp
call fcn.004140d0
push edi
push edi
mov ecx, ebp
call fcn.004140d0
jmp 0x5a938a
cmp ebx, edi
jbe 0x5a934f
cmp ebx, ecx
jne 0x5a934f
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x5a9318
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5a934f
push 1
mov ecx, ebp
call fcn.004138a0
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x5a9334
mov eax, 0x6ce1f8
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [ebp + 4], eax
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], edx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5a938a
push 1
push ebx
mov ecx, ebp
call fcn.00414210
test al, al
je 0x5a938a
mov esi, dword [esp + 0x18]
cmp esi, edi
jne 0x5a936a
mov esi, 0x6ce1f8
mov edi, dword [ebp + 4]
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]
mov eax, dword [ebp + 4]
mov dword [ebp + 8], ebx
add eax, ebx
xor edi, edi
mov byte [eax], 0
lea ecx, [esp + 0x10]
mov dword [esp + 0x30], 1
mov byte [esp + 0x108], 4
call fcn.0060ffb0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x108], 3
call fcn.00546f80
lea ecx, [esp + 0x58]
mov byte [esp + 0x108], 2
call fcn.0060d280
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x5a93ea
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5a93e1
cmp al, 0xff
je 0x5a93e1
dec al
mov byte [ecx], al
jmp 0x5a93ea
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x114]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov byte [esp + 0x108], 0
call fcn.0060ffb0
mov eax, ebp
mov ecx, dword [esp + 0x100]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xfc
ret 8