Function at 0x5a9841
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xcc
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x30], edx
and eax, 0x100
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
test edx, edx
je 0x5a9a49
movzx eax, byte [edx]
mov esi, edx
xor ebx, ebx
mov edi, 0x98f727
mov ecx, 9
test al, al
sete bl
repe cmpsb byte [esi], byte es:[edi]
seta dl
sbb dl, 0
test dl, dl
je 0x5a9a61
xor ebx, ebx
test al, al
je 0x5a9a49
test byte [esp + 0xe8], 0x80
jne 0x5a9a61
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5a9a7d
test ebx, ebx
jne 0x5a9ef7
mov eax, 0x30
xor edx, edx
call fcn.00553df1
mov esi, eax
test eax, eax
je 0x5a9f29
mov eax, dword [esp + 0x24]
mov byte [esi + 8], 0
mov dword [esi + 0x20], esi
mov dword [esi], eax
mov dword [esi + 0x24], 1
mov dword [esp + 0x20], 0
test dword [esp + 0xe8], 0x20000
je 0x5a9acd
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5aa439
mov dword [esp], eax
call fcn.0086e921
and eax, 0x3fffffff
lea ebx, [eax + 1]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 8]
lea ebp, [eax + 1]
mov dword [esp + 0x28], eax
mov eax, ebx
cmp ebp, ebx
cmovge eax, ebp
cdq
call fcn.00553481
mov byte [esi + 9], 1
mov edi, eax
test eax, eax
je 0x5a9f1a
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x5a9f91
mov eax, dword [esp + 0x30]
mov byte [edi], 0
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], edi
mov dword [esp], eax
call dword [eax + 0x24]
mov ebp, eax
test eax, 0xfffffdff
jne 0x5aa5dd
cmp byte [0x962fa4], 0
je 0x5aa57a
mov dword [esp], 4
call dword [fcn.00962fe8]
mov dword [esp + 0x28], eax
test eax, eax
je 0x5a99aa
mov dword [esp], eax
call dword [fcn.00962ff0]
cmp byte [0x962fa4], 0
je 0x5aa582
mov dword [esp], 2
call dword [fcn.00962fe8]
mov dword [esp + 0x34], eax
test eax, eax
je 0x5aa419
mov dword [esp], eax
call dword [fcn.00962ff0]
mov ebx, dword [0xa2d858]
test ebx, ebx
je 0x5a9a28
mov dword [esp + 0x38], esi
mov ebp, dword [esp + 0x2c]
lea esi, [esi]
mov esi, dword [ebx]
mov eax, dword [esi + 0xa8]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0086e951
test eax, eax
jne 0x5a9a11
cmp ebp, dword [esi]
je 0x5aa3b1
mov ebx, dword [ebx + 0x48]
test ebx, ebx
jne 0x5a99f1
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
test eax, eax
je 0x5aa427
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call dword [fcn.00962ff8]
mov dword [esp], edi
call fcn.00547771
jmp 0x5a9ad5
mov eax, dword [esp + 0x24]
mov ebx, 1
cmp byte [eax + 0x52], 2
jne 0x5a989f
lea esi, [esi]
nop
mov eax, dword [esp + 0x20]
or dword [esp + 0xe4], 2
mov dword [esp + 0x20], 1
test eax, eax
jne 0x5a9f01
mov eax, 0x30
xor edx, edx
call fcn.00553df1
mov esi, eax
test eax, eax
je 0x5a9f29
mov byte [eax + 8], 0
mov eax, dword [esp + 0x24]
mov dword [esi + 0x20], esi
mov dword [esi], eax
mov dword [esi + 0x24], 1
mov dword [esp + 0x28], 0
test ebx, ebx
jne 0x5a9ad5
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5a98f3
test byte [esp + 0xe8], 0x40
jne 0x5a98f3
mov dword [esp + 0x28], 0
mov eax, 0x5c
xor edx, edx
call fcn.00553df1
mov ebx, eax
test eax, eax
je 0x5a9fb1
mov eax, dword [esp + 0x2c]
mov edx, 0x40
mov edi, dword [esp + 0x30]
mov dword [esp + 0x58], 0x1000
mov ecx, dword [esp + 0xe4]
mov eax, dword [eax + 4]
mov dword [ebx], 0
cmp eax, 0x40
cmovge edx, eax
add edx, 7
and edx, 0xfffffff8
mov ebp, edx
and ecx, 2
je 0x5a9f41
test edi, edi
je 0x5aa0c7
cmp byte [edi], 0
jne 0x5aa647
mov dword [esp + 0x44], 1
mov edi, dword [esp + 0x30]
mov edx, 0x12a
xor ecx, ecx
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 1
mov dword [esp + 0x4c], 0
mov dword [esp + 0x3c], 0
add edx, dword [esp + 0x44]
add eax, 7
mov dword [esp + 0x48], ecx
lea edx, [edx + ebp*2]
and eax, 0xfffffff8
add eax, edx
xor edx, edx
call fcn.00553df1
mov ecx, dword [esp + 0x48]
test eax, eax
mov dword [esp + 0x34], eax
je 0x5aa6a6
mov edx, dword [esp + 0x34]
lea eax, [edx + 0xe0]
mov dword [edx + 0xd4], eax
mov eax, edx
lea edx, [edx + 0x110]
mov dword [eax + 0x3c], edx
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 4]
mov dword [esp + 0x48], eax
add eax, 7
and eax, 0xfffffff8
add eax, edx
mov edx, dword [esp + 0x34]
mov dword [edx + 0x44], eax
add eax, ebp
mov dword [edx + 0x40], eax
add eax, ebp
mov ebp, edx
mov dword [eax], edx
lea edx, [eax + 8]
mov dword [ebp + 0xa8], edx
test ecx, ecx
jne 0x5aa4b2
mov eax, dword [esp + 0x34]
mov dword [eax + 0xac], 0
mov dword [eax + 0xdc], 0
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0xe8]
mov dword [ecx], edx
mov dword [ecx + 0x90], eax
test edi, edi
je 0x5aa331
cmp byte [edi], 0
je 0x5aa331
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0
mov edi, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xe8]
and eax, 0x1087f7f
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [ecx + 0xa8]
mov dword [esp], edx
mov dword [esp + 4], eax
call dword [edx + 0x18]
mov ebp, eax
mov eax, dword [esp + 0x5c]
mov edx, eax
shr edx, 7
and edx, 1
mov dword [esp + 0x44], edx
test ebp, ebp
jne 0x5aa445
and eax, 1
mov dword [esp + 0x3c], eax
mov ebp, eax
mov eax, dword [edi + 0x3c]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x30]
mov edi, eax
test ebp, ebp
je 0x5aa6e6
mov ebp, dword [esp + 0x34]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x98f730
mov eax, dword [ebp + 0xa8]
mov dword [esp], eax
call fcn.0055c491
and edi, 0x2000
mov byte [ebp + 0xd], al
jne 0x5aa6c0
mov eax, dword [esp + 0x34]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x98f737
mov eax, dword [eax + 0xa8]
mov dword [esp], eax
call fcn.0055c491
mov dword [esp + 0x40], eax
test eax, eax
jne 0x5aa6c0
lea esi, [esi]
mov edi, dword [esp + 0x34]
mov ecx, 0xffffffff
lea edx, [esp + 0x58]
mov eax, edi
call fcn.0055e311
mov ebp, eax
test eax, eax
jne 0x5aa445
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x34], edi
mov edi, dword [edi + 0xd4]
test eax, eax
mov eax, 0x592f50
cmovne eax, ebp
mov dword [esp + 0x48], eax
mov eax, edi
lea edi, [edi + 4]
mov dword [edi - 4], 0
mov ecx, eax
mov dword [edi + 0x28], 0
and edi, 0xfffffffc
sub ecx, edi
mov dword [esp + 0x2c], eax
mov eax, ebp
add ecx, 0x30
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
xor ecx, 1
mov dword [edi + 0x18], 1
mov byte [edi + 0x20], cl
mov ecx, dword [esp + 0x48]
mov dword [edi + 0x28], eax
mov eax, edi
mov dword [edi + 0x1c], 0x58
mov byte [edi + 0x21], 2
mov dword [edi + 0x24], ecx
mov dword [edi + 0x10], 0x64
mov dword [edi + 0x14], 1
call fcn.0054a441
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x5aa443
mov edi, dword [esp + 0xe4]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x40]
mov dword [ecx + 0x9c], 0x3fffffff
and edi, 1
mov eax, edi
mov byte [ecx + 0xc], dl
xor eax, 1
mov byte [ecx + 4], dl
mov byte [ecx + 6], al
movzx eax, byte [esp + 0x38]
mov byte [ecx + 0x12], dl
mov byte [ecx + 0xf], al
movzx eax, byte [esp + 0x3c]
mov byte [ecx + 7], dl
mov byte [ecx + 0xe], al
test edx, edx
jne 0x5a9df9
mov dword [ecx + 8], 0xa020001
mov ebp, dword [esp + 0x34]
mov ecx, 0x58
mov word [ebp + 0x8c], cx
mov eax, ebp
mov dword [ebp + 0xa0], 0xffffffff
mov dword [ebp + 0xa4], 0xffffffff
call fcn.0054aac1
test edi, edi
je 0x5aa47a
mov byte [ebp + 5], 2
mov eax, dword [esp + 0x34]
mov dword [eax + 0xc8], 0x54e920
mov edx, dword [eax + 0x28]
test edx, edx
je 0x5aa495
mov dword [eax + 0xcc], 0x52b520
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
mov dword [ebx], edi
mov dword [edi + 0x80], eax
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x84], edx
mov eax, dword [eax]
test eax, eax
je 0x5a9e8a
cmp dword [eax], 2
jle 0x5a9e8a
mov eax, edi
call fcn.0055e071
mov eax, dword [ebx]
mov dword [esp + 0x34], eax
lea edx, [esp + 0x5c]
xor eax, eax
mov ecx, 0x19
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x3c]
mov eax, dword [ecx]
test eax, eax
je 0x5aa0fd
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x64
mov dword [esp + 4], edx
mov dword [esp], ecx
call dword [eax + 8]
mov ebp, eax
cmp eax, 0x20a
je 0x5aa0fd
test eax, eax
je 0x5aa0fd
mov eax, dword [ebx]
test eax, eax
je 0x5a9fb9
xor edx, edx
call fcn.005a96e1
jmp 0x5a9fb9
mov dword [esp + 0x20], 0
nop
mov eax, dword [esp + 0xe8]
and ah, 0xfc
or ah, 2
mov dword [esp + 0xe8], eax
jmp 0x5a9a7d
mov dword [esp], esi
call fcn.00547771
lea esi, [esi]
mov ebp, 7
add esp, 0xcc
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
test edi, edi
je 0x5aa7b9
cmp byte [edi], 0
jne 0x5a9ff8
mov dword [esp + 0x38], 0
mov edi, dword [esp + 0x30]
mov edx, 0x12a
mov dword [esp + 0x44], 1
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x3c], 0
jmp 0x5a9b6b
mov eax, dword [esp + 0x30]
mov dword [esp + 8], ebx
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0086e9f1
jmp 0x5a997f
mov ebp, 7
lea esi, [esi]
mov dword [esp], ebx
call fcn.00547771
mov dword [esp], esi
call fcn.00547771
mov eax, dword [esp + 0xe0]
mov dword [eax], 0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x5a9f2e
mov dword [esp], eax
call dword [fcn.00962ff8]
add esp, 0xcc
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 8]
lea edi, [ecx + 1]
mov dword [esp + 0x34], ecx
lea eax, [edi + edi]
cdq
call fcn.00553481
mov dword [esp + 0x3c], eax
test eax, eax
je 0x5aa69c
mov byte [eax], 0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x30]
mov dword [esp], eax
mov dword [esp + 4], edi
call dword [eax + 0x24]
mov dword [esp + 0x38], eax
test eax, eax
je 0x5aa060
cmp eax, 0x200
jne 0x5aa060
mov edi, dword [esp + 0xe8]
mov eax, 0x60e
and edi, 0x1000000
cmove eax, edi
mov dword [esp + 0x38], eax
mov edi, dword [esp + 0x30]
mov dword [esp], edi
call fcn.0086e921
and eax, 0x3fffffff
lea edi, [edi + eax + 1]
cmp byte [edi], 0
mov dword [esp + 0x4c], edi
je 0x5aa741
lea esi, [esi]
mov dword [esp], edi
call fcn.0086e921
lea edi, [edi + eax + 1]
mov dword [esp], edi
call fcn.0086e921
lea edi, [edi + eax + 1]
cmp byte [edi], 0
jne 0x5aa089
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
test edx, edx
mov dword [esp], eax
je 0x5aa605
call fcn.00547771
mov ebp, dword [esp + 0x38]
jmp 0x5a9ee1
mov dword [esp + 0x4c], 0
xor edi, edi
mov edx, 0x12a
xor ecx, ecx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], 1
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 1
jmp 0x5a9b6b
movzx eax, byte [esp + 0xe4]
mov byte [ebx + 0x10], al
mov eax, dword [esp + 0x24]
mov dword [ebx + 4], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x3c]
mov dword [eax + 0xb4], ebx
mov dword [eax + 0xb0], 0x52bac0
mov edx, dword [ecx]
test edx, edx
je 0x5aa143
add eax, 0xb0
mov dword [esp + 4], 0xf
mov dword [esp + 8], eax
mov dword [esp], ecx
call dword [edx + 0x28]
mov eax, dword [ebx]
mov dword [esi + 4], ebx
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
cmp byte [eax + 0xe], 0
je 0x5aa15f
or word [ebx + 0x18], 1
movzx edx, byte [esp + 0x6c]
movzx ecx, byte [esp + 0x6d]
shl edx, 8
shl ecx, 0x10
or edx, ecx
lea ecx, [edx - 0x200]
mov dword [ebx + 0x24], edx
cmp ecx, 0xfe00
ja 0x5aa369
lea ecx, [edx - 1]
test ecx, edx
jne 0x5aa369
movzx edi, byte [esp + 0x70]
or word [ebx + 0x18], 2
mov edx, dword [esp + 0x90]
test edx, edx
setne byte [ebx + 0x11]
mov ecx, dword [esp + 0x9c]
test ecx, ecx
mov ecx, edi
movzx ecx, cl
setne byte [ebx + 0x12]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
lea edx, [ebx + 0x24]
call fcn.0055e311
mov ebp, eax
test eax, eax
jne 0x5a9ee1
mov eax, edi
mov dword [ebx + 0x44], 1
movzx edi, al
mov eax, dword [ebx + 0x24]
sub eax, edi
mov dword [ebx + 0x28], eax
cmp byte [esi + 9], 0
je 0x5aa28b
cmp byte [0x962fa4], 0
je 0x5aa74a
mov dword [esp], 2
call dword [fcn.00962fe8]
cmp byte [0x962fa4], 0
mov edi, eax
je 0x5aa22f
mov dword [esp], 0
call dword [fcn.00962fe8]
mov dword [ebx + 0x3c], eax
test eax, eax
je 0x5aa69c
test edi, edi
je 0x5aa717
mov dword [esp], edi
call dword [fcn.00962ff0]
mov eax, dword [0xa2d858]
mov dword [0xa2d858], ebx
mov dword [ebx + 0x48], eax
mov dword [esp], edi
call dword [fcn.00962ff8]
cmp byte [esi + 9], 0
je 0x5aa28b
lea esi, [esi]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jle 0x5aa28b
mov edi, dword [eax + 0x10]
xor edx, edx
mov eax, edx
shl eax, 4
mov eax, dword [edi + eax + 4]
test eax, eax
je 0x5aa284
cmp byte [eax + 9], 0
jne 0x5aa2d9
add edx, 1
cmp edx, ecx
jne 0x5aa271
mov eax, dword [esp + 0xe0]
xor ecx, ecx
xor edx, edx
mov dword [eax], esi
mov eax, esi
call fcn.005550c1
test eax, eax
je 0x5aa399
mov eax, dword [ebx]
xor ebp, ebp
mov ecx, dword [eax + 0x3c]
mov edx, dword [ecx]
test edx, edx
je 0x5a9fd6
add ebx, 4
mov dword [esp + 4], 0x1e
mov dword [esp + 8], ebx
mov dword [esp], ecx
call dword [edx + 0x28]
jmp 0x5a9fd6
mov edx, eax
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x5aa2d9
mov eax, dword [esi + 4]
cmp dword [edx + 4], eax
jbe 0x5aa306
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], 0
mov dword [edx + 0x1c], esi
jmp 0x5aa28b
cmp dword [edx + 4], eax
jae 0x5aa321
mov ecx, edx
mov edx, dword [edx + 0x18]
test edx, edx
jne 0x5aa301
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], ecx
mov dword [ecx + 0x18], esi
jmp 0x5aa28b
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], ecx
mov dword [edx + 0x1c], esi
jmp 0x5aa319
mov eax, dword [esp + 0x34]
mov edx, 0x401
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 1
mov word [eax + 0x10], dx
mov byte [eax + 0xd], 1
mov eax, dword [esp + 0xe8]
and eax, 1
mov dword [esp + 0x3c], eax
jmp 0x5a9cf9
mov ebp, dword [esp + 0x30]
mov dword [ebx + 0x24], 0
test ebp, ebp
je 0x5aa573
cmp byte [esp + 0x20], 0
jne 0x5aa573
xor edi, edi
mov word [ebx + 0x11], di
xor edi, edi
jmp 0x5aa1be
mov edx, 0xfffff830
mov eax, esi
call fcn.0054b551
jmp 0x5aa2a7
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x38]
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x20], eax
sub eax, 1
js 0x5aa3ef
mov ecx, dword [ecx + 0x10]
lea esi, [esi]
nop
mov edx, eax
shl edx, 4
mov edx, dword [ecx + edx + 4]
test edx, edx
je 0x5aa3e7
cmp dword [edx + 4], ebx
je 0x5aa5a1
sub eax, 1
cmp eax, 0xffffffff
jne 0x5aa3d1
mov ecx, dword [esp + 0x34]
mov dword [esi + 4], ebx
add dword [ebx + 0x44], 1
test ecx, ecx
jne 0x5aa79f
mov dword [esp], edi
call fcn.00547771
cmp byte [esi + 9], 0
je 0x5aa28b
jmp 0x5aa261
mov ebx, dword [0xa2d858]
test ebx, ebx
jne 0x5a99e3
mov dword [esp], edi
call fcn.00547771
jmp 0x5a9ad5
mov ebx, 1
jmp 0x5a9920
mov ebp, eax
mov eax, dword [esp + 0x34]
mov edi, dword [eax + 0x3c]
mov eax, dword [edi]
test eax, eax
je 0x5aa45e
mov dword [esp], edi
call dword [eax + 4]
mov dword [edi], 0
mov edi, dword [esp + 0x34]
mov eax, dword [edi + 0xd0]
call fcn.0054a541
mov dword [esp], edi
call fcn.00547771
jmp 0x5a9ee1
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x44]
je 0x5a9e30
mov eax, dword [esp + 0x34]
mov byte [eax + 5], 4
jmp 0x5a9e30
mov eax, dword [esp + 0x34]
cmp byte [eax + 0x16], 0
je 0x5aa5f2
mov dword [eax + 0xcc], 0x58a380
jmp 0x5a9e53
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov dword [esp], edx
mov dword [esp + 0x48], edx
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
call fcn.0086e9f1
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
lea edx, [edx + ebp + 1]
lea ebp, [edx + 1]
test eax, eax
je 0x5aa4ff
mov ebp, dword [esp + 0x44]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0x44], edx
call fcn.0086e9f1
mov edx, dword [esp + 0x44]
add ebp, edx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0xac], ebp
mov eax, dword [esp + 0x40]
mov dword [esp + 4], ecx
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.0086e9f1
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
add ebp, eax
mov dword [ebp], 0x756f6a2d
add ebp, 9
mov dword [ebp - 5], 0x6c616e72
mov dword [edx + 0xdc], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp], ebp
call fcn.0086e9f1
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov dword [ebp + eax], 0x6c61772d
mov dword [esp], ecx
call fcn.00547771
jmp 0x5a9bfe
xor edi, edi
jmp 0x5aa1be
mov dword [esp + 0x28], 0
mov ebx, dword [0xa2d858]
mov dword [esp + 0x34], 0
test ebx, ebx
jne 0x5a99e3
jmp 0x5aa427
mov eax, dword [esp + 0x34]
test eax, eax
je 0x5aa5b2
mov dword [esp], eax
call dword [fcn.00962ff8]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x5aa5c3
mov dword [esp], eax
call dword [fcn.00962ff8]
mov dword [esp], edi
mov ebp, 0x13
call fcn.00547771
mov dword [esp], esi
call fcn.00547771
jmp 0x5a9f2e
mov dword [esp], edi
call fcn.00547771
mov dword [esp], esi
call fcn.00547771
jmp 0x5a9f2e
mov eax, dword [esp + 0x34]
mov dword [eax + 0xcc], 0x58a080
jmp 0x5a9e53
call fcn.0086e921
mov edx, dword [esp + 0x2c]
and eax, 0x3fffffff
mov ecx, eax
lea eax, [eax + 7]
cmp eax, dword [edx + 8]
jge 0x5aa75d
mov eax, dword [esp + 0x2c]
add edi, 1
sub edi, dword [esp + 0x4c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edi
lea edx, [ecx + ecx*2 + 0x12a]
mov edi, dword [esp + 0x30]
mov eax, dword [eax + 4]
jmp 0x5a9b6b
mov edx, edi
xor eax, eax
call fcn.00555821
mov dword [esp + 0x3c], eax
test eax, eax
je 0x5aa69c
mov eax, dword [esp + 0x3c]
xor edi, edi
mov dword [esp], eax
call fcn.0086e921
mov dword [esp + 0x44], 1
and eax, 0x3fffffff
mov dword [esp + 0x38], 1
mov dword [esp + 0x40], eax
mov ecx, eax
lea edx, [eax + eax*2 + 0x12a]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x4c], 0
mov eax, dword [eax + 4]
jmp 0x5a9b6b
mov ebp, 7
jmp 0x5a9ee1
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x5aa69c
mov dword [esp], eax
mov ebp, 7
call fcn.00547771
jmp 0x5a9ee1
mov eax, dword [esp + 0x34]
mov ecx, 0x401
mov dword [esp + 0x3c], 1
mov dword [esp + 0x40], 1
mov word [eax + 0x10], cx
mov byte [eax + 0xd], 1
jmp 0x5a9cf9
mov ebp, dword [esp + 0x34]
mov eax, ebp
call fcn.0054aac1
mov eax, dword [ebp + 0x94]
cmp eax, dword [esp + 0x58]
jbe 0x5a9c97
cmp eax, 0x2001
mov edx, 0x2000
cmovae eax, edx
mov dword [esp + 0x58], eax
jmp 0x5a9c97
mov edx, dword [0xa2d858]
movzx eax, byte [esi + 9]
mov dword [0xa2d858], ebx
mov dword [ebx + 0x48], edx
test al, al
je 0x5aa28b
jmp 0x5aa261
mov edi, dword [esp + 0x4c]
jmp 0x5aa0a6
mov eax, dword [0xa2d858]
mov dword [0xa2d858], ebx
mov dword [ebx + 0x48], eax
jmp 0x5aa261
mov dword [esp + 0x10], 0x98bd88
mov ebp, 0xe
mov dword [esp + 0xc], 0xe028
mov dword [esp + 8], 0x98e3a4
mov dword [esp + 4], 0x98cb21
mov dword [esp], 0xe
call fcn.00561091
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00547771
jmp 0x5a9ee1
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call dword [fcn.00962ff8]
mov dword [esp], edi
call fcn.00547771
jmp 0x5aa40a
mov dword [esp + 0x38], 0
xor edi, edi
mov edx, 0x12a
mov dword [esp + 0x4c], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], 1
mov dword [esp + 0x40], 0
jmp 0x5a9b6b