Function at 0x513340
Capabilities:
Check os version
Contain obfuscated stackstrings
Encode data using base64
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5dc3e4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x324
push ebx
push ebp
push esi
push edi
mov esi, ecx
mov ebx, 1
xor ebp, ebp
mov dword [esp + 0x33c], ebp
mov byte [esp + 0x24], bl
mov byte [esp + 0x25], bl
mov byte [esp + 0x26], bl
mov byte [esp + 0x27], bl
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], bl
mov byte [esp + 0x2a], bl
mov byte [esp + 0x2b], bl
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], bl
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], bl
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], bl
mov byte [esp + 0x32], bl
mov byte [esp + 0x33], bl
mov byte [esp + 0x34], bl
mov byte [esp + 0x35], bl
mov byte [esp + 0x36], bl
mov byte [esp + 0x37], bl
mov byte [esp + 0x38], bl
mov byte [esp + 0x39], bl
mov byte [esp + 0x3a], bl
mov byte [esp + 0x3b], bl
mov byte [esp + 0x3c], bl
mov byte [esp + 0x3d], bl
mov byte [esp + 0x3e], bl
mov byte [esp + 0x3f], 3
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], 4
mov byte [esp + 0x42], bl
mov byte [esp + 0x43], 5
mov byte [esp + 0x44], bl
mov byte [esp + 0x45], 6
mov byte [esp + 0x46], bl
mov byte [esp + 0x47], 6
mov byte [esp + 0x48], bl
mov byte [esp + 0x49], 7
mov byte [esp + 0x4a], bl
mov byte [esp + 0x4b], 7
mov byte [esp + 0x4c], bl
mov byte [esp + 0x4d], 0xb
mov byte [esp + 0x4e], bl
mov byte [esp + 0x4f], 0xc
mov byte [esp + 0x50], bl
mov byte [esp + 0x51], 0xd
mov byte [esp + 0x52], bl
mov byte [esp + 0x53], 0xe
mov byte [esp + 0x54], bl
mov byte [esp + 0x55], 0xf
mov byte [esp + 0x56], bl
mov byte [esp + 0x57], 0x11
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], 0x1c
mov byte [esp + 0x5a], bl
mov byte [esp + 0x5b], 0x1f
mov byte [esp + 0x5c], bl
mov byte [esp + 0x5d], 0x21
mov byte [esp + 0x5e], bl
mov byte [esp + 0x5f], 0x33
mov byte [esp + 0x60], bl
mov byte [esp + 0x61], 0x42
mov byte [esp + 0x62], bl
mov byte [esp + 0x63], 0x4f
mov byte [esp + 0x64], bl
mov byte [esp + 0x65], 0x50
mov byte [esp + 0x66], bl
mov byte [esp + 0x67], 0x51
mov byte [esp + 0x68], bl
mov byte [esp + 0x69], 0x13
mov byte [esp + 0x6a], bl
mov byte [esp + 0x6b], 0x14
lea ecx, [esp + 0x18]
mov byte [esp + 0x6c], bl
mov byte [esp + 0x6d], 0x14
mov byte [esp + 0x6e], bl
mov byte [esp + 0x6f], 0x15
mov byte [esp + 0x70], bl
mov byte [esp + 0x71], 0x15
call fcn.00558060
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.00558060
mov al, byte [0x619c14]
mov byte [esp + 0x33c], 2
cmp al, bl
jne 0x5135fb
lea ecx, [esp + 0x14]
call fcn.00558060
mov byte [esp + 0x33c], 3
mov esi, 0x64
mov al, byte [0x626afc]
mov cl, al
inc al
push ecx
lea ecx, [esp + 0x18]
mov byte [0x626afc], al
call fcn.00558500
dec esi
jne 0x513505
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00558070
lea ecx, [esp + 0x14]
call fcn.00558390
mov byte [esp + 0x33c], 2
lea ecx, [esp + 0x14]
call fcn.005581a0
push 5
lea ecx, [esp + 0x348]
call fcn.00558380
and eax, 0xff
cmp eax, 0x26
ja case.default.0x513567
jmp dword [eax*4 + 0x516b18]
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x513891
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov ecx, dword [esp + 0x358]
mov edx, dword [esp + 0x354]
push ecx
push edx
lea ecx, [esp + 0x358]
mov dword [esp + 0x344], 0xa
call fcn.00402cf0
mov eax, dword [esp + 0x354]
push eax
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 9
jmp 0x516997
push 6
push 0x60e86c
lea ecx, [esp + 0x20]
call fcn.00558600
movsx ecx, word [esp + 0x348]
mov dl, byte [esp + ecx*2 + 0x24]
lea ecx, [esp + 0x18]
push edx
push 3
call fcn.005584a0
movsx eax, word [esp + 0x348]
mov cl, byte [esp + eax*2 + 0x25]
push ecx
push 4
lea ecx, [esp + 0x20]
call fcn.005584a0
lea edi, [esi + 0x58]
lea edx, [esp + 0x18]
push edx
mov ecx, edi
call fcn.00558440
test al, al
je 0x51366a
push 5
lea ecx, [esp + 0x348]
call fcn.00558380
movzx ax, al
cmp word [esp + 0x364], ax
jne 0x5136ac
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.00558070
mov ecx, edi
call fcn.00558390
lea eax, [esp + 0x18]
push eax
call fcn.004023c0
add esp, 4
lea ecx, [esi + 0x5c]
lea edx, [esp + 0x18]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
call fcn.00558070
call fcn.00402440
add esp, 8
push ecx
add esi, 0x5c
mov ecx, esp
mov dword [esp + 0x20], esp
push esi
call fcn.00558070
lea ecx, [esp + 0x14]
call fcn.00558390
lea ecx, [esp + 0x10]
call fcn.00558520
test ax, ax
jne 0x51374d
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov eax, dword [esp + 0x358]
mov ecx, dword [esp + 0x354]
push eax
push ecx
lea ecx, [esp + 0x358]
mov dword [esp + 0x344], 5
call fcn.00402cf0
mov edx, dword [esp + 0x354]
push edx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 4
jmp 0x516997
lea ecx, [esp + 0x14]
call fcn.00558060
push ebp
lea ecx, [esp + 0x14]
mov byte [esp + 0x340], 6
call fcn.00558380
cmp al, 0x80
jne 0x5137a4
lea ecx, [esp + 0x10]
mov esi, 4
call fcn.00558520
cmp ax, si
jle 0x5137da
push esi
lea ecx, [esp + 0x14]
call fcn.00558380
push eax
lea ecx, [esp + 0x18]
call fcn.00558500
lea ecx, [esp + 0x10]
inc esi
call fcn.00558520
cmp si, ax
jl 0x51377f
jmp 0x5137da
lea ecx, [esp + 0x10]
mov esi, 3
call fcn.00558520
cmp ax, si
jle 0x5137da
push esi
lea ecx, [esp + 0x14]
call fcn.00558380
push eax
lea ecx, [esp + 0x18]
call fcn.00558500
lea ecx, [esp + 0x10]
inc esi
call fcn.00558520
cmp si, ax
jl 0x5137b7
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00558070
lea ecx, [esp + 0x14]
call fcn.00558390
push ebp
lea ecx, [esp + 0x14]
call fcn.00558380
cmp al, 0x7f
mov byte [esp + 0x33c], 2
lea ecx, [esp + 0x14]
jne 0x513546
call fcn.005581a0
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov ecx, dword [esp + 0x358]
mov edx, dword [esp + 0x354]
push ecx
push edx
lea ecx, [esp + 0x358]
mov dword [esp + 0x344], 8
call fcn.00402cf0
mov eax, dword [esp + 0x354]
push eax
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 7
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
and eax, 0x8000007f
jns 0x5138ad
dec eax
or eax, 0xffffff80
inc eax
mov ecx, dword [esp + 0x360]
push eax
push 0x609488
push ecx
call fcn.005bcf3d
add esp, 0xc
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x513951
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edx, dword [esp + 0x358]
mov eax, dword [esp + 0x354]
push edx
push eax
lea ecx, [esp + 0x358]
mov dword [esp + 0x344], 0xc
call fcn.00402cf0
mov ecx, dword [esp + 0x354]
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0xb
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test al, 0x80
mov ecx, esp
je 0x5139c5
mov dword [esp + 0x20], esp
push 6
push 0x60e864
call fcn.00558100
lea edx, [esp + 0x1e8]
push edx
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x51398f
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x1e8]
call fcn.00401850
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e85c
call fcn.00558100
lea ecx, [esp + 0x328]
push ecx
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x5139f1
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x328]
call fcn.00401850
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 4
jge 0x513ab0
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov eax, dword [esp + 0x358]
mov ecx, dword [esp + 0x354]
push eax
push ecx
lea ecx, [esp + 0x358]
mov dword [esp + 0x344], 0xe
call fcn.00402cf0
mov edx, dword [esp + 0x354]
push edx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0xd
jmp 0x516997
push 3
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test bl, al
mov ecx, esp
je 0x513b24
mov dword [esp + 0x20], esp
push 6
push 0x60e854
call fcn.00558100
lea eax, [esp + 0x298]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x513aee
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x298]
call fcn.00401850
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e84c
call fcn.00558100
lea eax, [esp + 0x218]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x513b50
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x218]
call fcn.00401850
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 4
jge 0x513c0f
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov eax, dword [esp + 0x358]
mov ecx, dword [esp + 0x354]
push eax
push ecx
lea ecx, [esp + 0x358]
mov dword [esp + 0x344], 0x10
call fcn.00402cf0
mov edx, dword [esp + 0x354]
push edx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0xf
jmp 0x516997
push 3
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test al, 2
mov ecx, esp
je 0x513c83
mov dword [esp + 0x20], esp
push 6
push 0x60e854
call fcn.00558100
lea eax, [esp + 0x318]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x513c4d
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x318]
call fcn.00401850
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e84c
call fcn.00558100
lea eax, [esp + 0x238]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x513caf
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x238]
call fcn.00401850
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 4
jge 0x513d6e
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov eax, dword [esp + 0x358]
mov ecx, dword [esp + 0x354]
push eax
push ecx
lea ecx, [esp + 0x358]
mov dword [esp + 0x344], 0x12
call fcn.00402cf0
mov edx, dword [esp + 0x354]
push edx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x11
jmp 0x516997
push 3
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test al, 4
mov ecx, esp
je 0x513de2
mov dword [esp + 0x20], esp
push 6
push 0x60e854
call fcn.00558100
lea eax, [esp + 0x2b8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x513dac
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x2b8]
call fcn.00401850
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e84c
call fcn.00558100
lea eax, [esp + 0x258]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x513e0e
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x258]
call fcn.00401850
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 5
jge 0x513ecd
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov eax, dword [esp + 0x358]
mov ecx, dword [esp + 0x354]
push eax
push ecx
lea ecx, [esp + 0x358]
mov dword [esp + 0x344], 0x14
call fcn.00402cf0
mov edx, dword [esp + 0x354]
push edx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x13
jmp 0x516997
push 4
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test bl, al
mov ecx, esp
je 0x513f41
mov dword [esp + 0x20], esp
push 6
push 0x60e854
call fcn.00558100
lea eax, [esp + 0x2f8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x513f0b
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x2f8]
call fcn.00401850
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e84c
call fcn.00558100
lea eax, [esp + 0x278]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x513f6d
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x278]
call fcn.00401850
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 5
jge 0x51402c
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov eax, dword [esp + 0x358]
mov ecx, dword [esp + 0x354]
push eax
push ecx
lea ecx, [esp + 0x358]
mov dword [esp + 0x344], 0x16
call fcn.00402cf0
mov edx, dword [esp + 0x354]
push edx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x15
jmp 0x516997
push 4
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test al, 2
mov ecx, esp
je 0x5140a0
mov dword [esp + 0x20], esp
push 6
push 0x60e854
call fcn.00558100
lea eax, [esp + 0x2d8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x51406a
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x2d8]
call fcn.00401850
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e84c
call fcn.00558100
lea eax, [esp + 0x1f8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x5140cc
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x1f8]
call fcn.00401850
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 5
jge 0x51418b
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov eax, dword [esp + 0x358]
mov ecx, dword [esp + 0x354]
push eax
push ecx
lea ecx, [esp + 0x358]
mov dword [esp + 0x344], 0x18
call fcn.00402cf0
mov edx, dword [esp + 0x354]
push edx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x17
jmp 0x516997
push 4
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test al, 4
mov ecx, esp
je 0x5141ff
mov dword [esp + 0x20], esp
push 6
push 0x60e854
call fcn.00558100
lea eax, [esp + 0x208]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x5141c9
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x208]
call fcn.00401850
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e84c
call fcn.00558100
lea eax, [esp + 0x228]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x51422b
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x228]
call fcn.00401850
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 5
jge 0x5142ea
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov eax, dword [esp + 0x358]
mov ecx, dword [esp + 0x354]
push eax
push ecx
lea ecx, [esp + 0x358]
mov dword [esp + 0x344], 0x1a
call fcn.00402cf0
mov edx, dword [esp + 0x354]
push edx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x19
jmp 0x516997
push 4
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test al, 8
mov ecx, esp
je 0x51435e
mov dword [esp + 0x20], esp
push 6
push 0x60e854
call fcn.00558100
lea eax, [esp + 0x248]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x514328
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x248]
call fcn.00401850
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e84c
call fcn.00558100
lea eax, [esp + 0x268]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x51438a
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x268]
call fcn.00401850
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 5
jge 0x514449
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov eax, dword [esp + 0x358]
mov ecx, dword [esp + 0x354]
push eax
push ecx
lea ecx, [esp + 0x358]
mov dword [esp + 0x344], 0x1c
call fcn.00402cf0
mov edx, dword [esp + 0x354]
push edx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x1b
jmp 0x516997
push 4
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test al, 0x10
mov ecx, esp
je 0x5144bd
mov dword [esp + 0x20], esp
push 6
push 0x60e854
call fcn.00558100
lea eax, [esp + 0x288]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x514487
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x288]
call fcn.00401850
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e84c
call fcn.00558100
lea eax, [esp + 0x2a8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x5144e9
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x2a8]
call fcn.00401850
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 5
jge 0x5145ad
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x1e
je 0x514582
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x51456c
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x1d
jmp 0x516997
push 4
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test al, 0x20
mov ecx, esp
je 0x514621
mov dword [esp + 0x20], esp
push 6
push 0x60e854
call fcn.00558100
lea eax, [esp + 0x2c8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x5145eb
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x2c8]
call fcn.00401850
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e84c
call fcn.00558100
lea eax, [esp + 0x2e8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x51464d
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x2e8]
call fcn.00401850
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 5
jge 0x514711
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x20
je 0x5146e6
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x5146d0
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x1f
jmp 0x516997
push 4
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test al, 0x40
mov ecx, esp
je 0x514785
mov dword [esp + 0x20], esp
push 6
push 0x60e854
call fcn.00558100
lea eax, [esp + 0x308]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x51474f
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x364]
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 + 0x308]
call fcn.00401850
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e84c
call fcn.00558100
lea eax, [esp + 0x178]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x5147b1
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x178]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x514815
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x51480c
cmp al, 0xff
je 0x51480c
dec al
mov byte [ecx], al
mov dword [esp + 0x178], ebp
mov dword [esp + 0x17c], ebp
mov dword [esp + 0x180], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x178], ebp
mov dword [esp + 0x17c], ebp
mov dword [esp + 0x180], ebp
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 5
jge 0x5148bd
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x22
je 0x514892
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x51487c
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x21
jmp 0x516997
push 4
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test al, 0x80
mov ecx, esp
je 0x51497d
mov dword [esp + 0x20], esp
push 6
push 0x60e854
call fcn.00558100
lea eax, [esp + 0x188]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x5148ff
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x188]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x514963
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x51495a
cmp al, 0xff
je 0x51495a
dec al
mov byte [ecx], al
mov dword [esp + 0x188], ebp
mov dword [esp + 0x18c], ebp
mov dword [esp + 0x190], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x188], ebp
mov dword [esp + 0x18c], ebp
mov dword [esp + 0x190], ebp
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e84c
call fcn.00558100
lea eax, [esp + 0x1d8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x5149a9
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x1d8]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x514a0d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x514a04
cmp al, 0xff
je 0x514a04
dec al
mov byte [ecx], al
mov dword [esp + 0x1d8], ebp
mov dword [esp + 0x1dc], ebp
mov dword [esp + 0x1e0], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x1d8], ebp
mov dword [esp + 0x1dc], ebp
mov dword [esp + 0x1e0], ebp
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x514ab5
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x24
je 0x514a8a
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x514a74
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x23
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test bl, al
je 0x514b75
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e844
call fcn.00558100
lea eax, [esp + 0xa8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x514af7
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0xa8]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x514b5b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x514b52
cmp al, 0xff
je 0x514b52
dec al
mov byte [ecx], al
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test al, 2
je 0x514c35
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e83c
call fcn.00558100
lea eax, [esp + 0x148]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x514bb7
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x148]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x514c1b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x514c12
cmp al, 0xff
je 0x514c12
dec al
mov byte [ecx], al
mov dword [esp + 0x148], ebp
mov dword [esp + 0x14c], ebp
mov dword [esp + 0x150], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x148], ebp
mov dword [esp + 0x14c], ebp
mov dword [esp + 0x150], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test al, 4
je 0x514cf5
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e834
call fcn.00558100
lea eax, [esp + 0xc8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x514c77
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0xc8]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x514cdb
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x514cd2
cmp al, 0xff
je 0x514cd2
dec al
mov byte [ecx], al
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test al, 8
je 0x514db5
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e82c
call fcn.00558100
lea eax, [esp + 0x1c8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x514d37
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x1c8]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x514d9b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x514d92
cmp al, 0xff
je 0x514d92
dec al
mov byte [ecx], al
mov dword [esp + 0x1c8], ebp
mov dword [esp + 0x1cc], ebp
mov dword [esp + 0x1d0], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x1c8], ebp
mov dword [esp + 0x1cc], ebp
mov dword [esp + 0x1d0], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test al, 0x10
mov ecx, esp
je 0x514e75
mov dword [esp + 0x20], esp
push 6
push 0x60e824
call fcn.00558100
lea eax, [esp + 0xe8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x514df7
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0xe8]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x514e5b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x514e52
cmp al, 0xff
je 0x514e52
dec al
mov byte [ecx], al
mov dword [esp + 0xe8], ebp
mov dword [esp + 0xec], ebp
mov dword [esp + 0xf0], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0xe8], ebp
mov dword [esp + 0xec], ebp
mov dword [esp + 0xf0], ebp
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e81c
call fcn.00558100
lea eax, [esp + 0x168]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x514ea1
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x168]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x514f05
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x514efc
cmp al, 0xff
je 0x514efc
dec al
mov byte [ecx], al
mov dword [esp + 0x168], ebp
mov dword [esp + 0x16c], ebp
mov dword [esp + 0x170], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x168], ebp
mov dword [esp + 0x16c], ebp
mov dword [esp + 0x170], ebp
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x514fad
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x26
je 0x514f82
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x514f6c
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x25
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
mov eax, 0x10624dd3
shl ecx, 2
imul ecx
sar edx, 4
mov ecx, dword [esp + 0x360]
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
push 0x609488
push ecx
call fcn.005bcf3d
add esp, 0xc
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x515080
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x28
je 0x515055
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x51503f
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x27
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
sub eax, 0x28
push eax
jmp 0x516208
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x515127
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x2a
je 0x5150fc
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x5150e6
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x29
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
jmp 0x516a9e
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 4
jge 0x5151d2
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x2c
je 0x5151a7
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x515191
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x2b
jmp 0x516997
push 3
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
jmp 0x516a0d
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x51527d
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x2e
je 0x515252
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x51523c
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x2d
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [0x5e79e0]
fsub qword [0x5e62a0]
jmp 0x516a62
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 4
jge 0x515334
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x30
je 0x515309
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x5152f3
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x2f
jmp 0x516997
push 3
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
jmp 0x516a9e
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x5153df
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x32
je 0x5153b4
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x51539e
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x31
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
mov ecx, dword [esp + 0x360]
and eax, 0xff
push eax
push 0x609488
push ecx
call fcn.005bcf3d
add esp, 0xc
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 4
jge 0x515498
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x34
je 0x51546d
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x515457
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x33
jmp 0x516997
push 3
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
push 2
shl eax, 6
mov ecx, eax
mov eax, 0x80808081
imul ecx
mov esi, edx
add esi, ecx
lea ecx, [esp + 0x14]
sar esi, 7
mov edx, esi
shr edx, 0x1f
add esi, edx
call fcn.00558380
and eax, 0xff
shl eax, 6
add esi, eax
mov eax, dword [esp + 0x360]
push esi
push 0x609488
push eax
call fcn.005bcf3d
add esp, 0xc
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x5153df
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x36
je 0x515559
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x515543
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x35
jmp 0x516997
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x515612
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x38
je 0x5155e7
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x5155d1
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x37
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [0x5e53c0]
fsub qword [0x5e62b8]
jmp 0x516a62
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x5156c9
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x3a
je 0x51569e
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x515688
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x39
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
sub eax, 0x28
push eax
mov eax, dword [esp + 0x364]
push 0x609488
push eax
call fcn.005bcf3d
add esp, 0xc
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x515785
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x3c
je 0x51575a
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x515744
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x3b
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
mov eax, 0x80808081
shl ecx, 2
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
jmp 0x516208
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x515845
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x3e
je 0x51581a
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x515804
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x3d
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test bl, al
je 0x515905
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e814
call fcn.00558100
lea eax, [esp + 0x108]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x515887
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x108]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x5158eb
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5158e2
cmp al, 0xff
je 0x5158e2
dec al
mov byte [ecx], al
mov dword [esp + 0x108], ebp
mov dword [esp + 0x10c], ebp
mov dword [esp + 0x110], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x108], ebp
mov dword [esp + 0x10c], ebp
mov dword [esp + 0x110], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test al, 2
je 0x5159c5
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e80c
call fcn.00558100
lea eax, [esp + 0x1a8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x515947
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x1a8]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x5159ab
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5159a2
cmp al, 0xff
je 0x5159a2
dec al
mov byte [ecx], al
mov dword [esp + 0x1a8], ebp
mov dword [esp + 0x1ac], ebp
mov dword [esp + 0x1b0], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x1a8], ebp
mov dword [esp + 0x1ac], ebp
mov dword [esp + 0x1b0], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test al, 4
je 0x515a85
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e804
call fcn.00558100
lea eax, [esp + 0x128]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x515a07
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x128]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x515a6b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x515a62
cmp al, 0xff
je 0x515a62
dec al
mov byte [ecx], al
mov dword [esp + 0x128], ebp
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x130], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x128], ebp
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x130], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test al, 8
mov ecx, esp
je 0x515b45
mov dword [esp + 0x20], esp
push 6
push 0x60e7fc
call fcn.00558100
lea eax, [esp + 0x88]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x515ac7
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x88]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x515b2b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x515b22
cmp al, 0xff
je 0x515b22
dec al
mov byte [ecx], al
mov dword [esp + 0x88], ebp
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x88], ebp
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], ebp
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e81c
call fcn.00558100
lea eax, [esp + 0x98]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x515b71
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x98]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x515bd5
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x515bcc
cmp al, 0xff
je 0x515bcc
dec al
mov byte [ecx], al
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], ebp
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 4
jge 0x515c7d
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x40
je 0x515c52
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x515c3c
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x3f
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
mov dl, al
push 3
and edx, 0xff
lea ecx, [esp + 0x14]
shl edx, 8
mov dword [esp + 0x18], edx
call fcn.00558380
mov ecx, dword [esp + 0x14]
and eax, 0xff
jmp 0x516205
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 4
jge 0x515d3e
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x42
je 0x515d13
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x515cfd
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x41
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
mov dl, al
push 3
and edx, 0xff
lea ecx, [esp + 0x14]
shl edx, 8
mov dword [esp + 0x18], edx
call fcn.00558380
mov ecx, dword [esp + 0x14]
and eax, 0xff
jmp 0x516205
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x515dff
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x44
je 0x515dd4
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x515dbe
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x43
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
push eax
mov eax, dword [esp + 0x364]
push 0x609488
push eax
call fcn.005bcf3d
add esp, 0xc
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 4
jge 0x515eb8
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x46
je 0x515e8d
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x515e77
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x45
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
push 3
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x14]
fild dword [esp + 0x18]
fmul qword [0x5e5a28]
fstp qword [esp + 0x20]
call fcn.00558380
and eax, 0xff
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [0x5e79d8]
fadd qword [esp + 0x1c]
jmp 0x516a19
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 6
jge 0x515f8f
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x48
je 0x515f64
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x515f4e
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x47
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
mov dl, al
push 3
and edx, 0xff
lea ecx, [esp + 0x14]
shl edx, 8
mov dword [esp + 0x18], edx
call fcn.00558380
mov edx, dword [esp + 0x14]
and eax, 0xff
add edx, eax
push 4
shl edx, 8
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], edx
call fcn.00558380
mov edx, dword [esp + 0x14]
and eax, 0xff
add edx, eax
push 5
shl edx, 8
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], edx
call fcn.00558380
mov edx, dword [esp + 0x14]
and eax, 0xff
add edx, eax
mov eax, dword [esp + 0x360]
push edx
push 0x609488
push eax
call fcn.005bcf3d
add esp, 0xc
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 6
jge 0x5160a2
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x4a
je 0x516077
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x516061
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x49
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
mov dl, al
push 3
and edx, 0xff
lea ecx, [esp + 0x14]
shl edx, 8
mov dword [esp + 0x18], edx
call fcn.00558380
mov edx, dword [esp + 0x14]
and eax, 0xff
add edx, eax
push 4
shl edx, 8
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], edx
call fcn.00558380
mov edx, dword [esp + 0x14]
and eax, 0xff
add edx, eax
push 5
shl edx, 8
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], edx
call fcn.00558380
mov ecx, dword [esp + 0x14]
and eax, 0xff
jmp 0x516205
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 6
jge 0x51619d
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x4c
je 0x516172
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x51615c
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x4b
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
mov dl, al
push 3
and edx, 0xff
lea ecx, [esp + 0x14]
shl edx, 8
mov dword [esp + 0x18], edx
call fcn.00558380
mov edx, dword [esp + 0x14]
and eax, 0xff
add edx, eax
push 4
shl edx, 8
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], edx
call fcn.00558380
mov edx, dword [esp + 0x14]
and eax, 0xff
add edx, eax
push 5
shl edx, 8
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], edx
call fcn.00558380
mov ecx, dword [esp + 0x14]
and eax, 0xff
add ecx, eax
push ecx
mov edx, dword [esp + 0x364]
push 0x609488
push edx
call fcn.005bcf3d
add esp, 0xc
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x5162b0
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
mov edi, dword [esp + 0x358]
mov esi, dword [esp + 0x354]
cmp esi, edi
mov dword [esp + 0x33c], 0x4e
je 0x516285
push ebp
mov ecx, esi
call fcn.00406c10
add esi, 4
cmp esi, edi
jne 0x51626f
mov esi, dword [esp + 0x354]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x354], ebp
mov dword [esp + 0x358], ebp
mov dword [esp + 0x35c], ebp
mov byte [esp + 0x33c], 0x4d
jmp 0x516997
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test bl, al
je 0x516370
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e7f4
call fcn.00558100
lea eax, [esp + 0xb8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x5162f2
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0xb8]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x516356
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x51634d
cmp al, 0xff
je 0x51634d
dec al
mov byte [ecx], al
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xc0], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xc0], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test al, 2
je 0x516430
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e7ec
call fcn.00558100
lea eax, [esp + 0xd8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x5163b2
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0xd8]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x516416
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x51640d
cmp al, 0xff
je 0x51640d
dec al
mov byte [ecx], al
mov dword [esp + 0xd8], ebp
mov dword [esp + 0xdc], ebp
mov dword [esp + 0xe0], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0xd8], ebp
mov dword [esp + 0xdc], ebp
mov dword [esp + 0xe0], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test al, 4
je 0x5164f0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e7e4
call fcn.00558100
lea eax, [esp + 0xf8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x516472
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0xf8]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x5164d6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5164cd
cmp al, 0xff
je 0x5164cd
dec al
mov byte [ecx], al
mov dword [esp + 0xf8], ebp
mov dword [esp + 0xfc], ebp
mov dword [esp + 0x100], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0xf8], ebp
mov dword [esp + 0xfc], ebp
mov dword [esp + 0x100], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test al, 8
je 0x5165b0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e7dc
call fcn.00558100
lea eax, [esp + 0x118]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x516532
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x118]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x516596
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x51658d
cmp al, 0xff
je 0x51658d
dec al
mov byte [ecx], al
mov dword [esp + 0x118], ebp
mov dword [esp + 0x11c], ebp
mov dword [esp + 0x120], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x118], ebp
mov dword [esp + 0x11c], ebp
mov dword [esp + 0x120], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test al, 0x10
je 0x516670
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e7d4
call fcn.00558100
lea eax, [esp + 0x138]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x5165f2
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x138]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x516656
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x51664d
cmp al, 0xff
je 0x51664d
dec al
mov byte [ecx], al
mov dword [esp + 0x138], ebp
mov dword [esp + 0x13c], ebp
mov dword [esp + 0x140], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x138], ebp
mov dword [esp + 0x13c], ebp
mov dword [esp + 0x140], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test al, 0x20
je 0x516730
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e7cc
call fcn.00558100
lea eax, [esp + 0x158]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x5166b2
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x158]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x516716
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x51670d
cmp al, 0xff
je 0x51670d
dec al
mov byte [ecx], al
mov dword [esp + 0x158], ebp
mov dword [esp + 0x15c], ebp
mov dword [esp + 0x160], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x158], ebp
mov dword [esp + 0x15c], ebp
mov dword [esp + 0x160], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
test al, 0x40
je 0x5167de
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x60e7c4
call fcn.00558100
lea eax, [esp + 0x78]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x51676f
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x78]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x5167ca
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5167c1
cmp al, 0xff
je 0x5167c1
dec al
mov byte [ecx], al
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebp
jmp case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
push ecx
test al, 0x80
mov ecx, esp
je 0x51689e
mov dword [esp + 0x20], esp
push 6
push 0x60e7bc
call fcn.00558100
lea eax, [esp + 0x198]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x516820
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x198]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x516884
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x51687b
cmp al, 0xff
je 0x51687b
dec al
mov byte [ecx], al
mov dword [esp + 0x198], ebp
mov dword [esp + 0x19c], ebp
mov dword [esp + 0x1a0], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x198], ebp
mov dword [esp + 0x19c], ebp
mov dword [esp + 0x1a0], ebp
jmp case.default.0x513567
mov dword [esp + 0x20], esp
push 6
push 0x60e81c
call fcn.00558100
lea eax, [esp + 0x1b8]
push eax
call fcn.00560f40
mov eax, dword [eax + 4]
add esp, 8
cmp eax, ebp
jne 0x5168ca
mov eax, 0x5e514c
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x1b8]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x360]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x51692e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x516925
cmp al, 0xff
je 0x516925
dec al
mov byte [ecx], al
mov dword [esp + 0x1b8], ebp
mov dword [esp + 0x1bc], ebp
mov dword [esp + 0x1c0], ebp
jmp case.default.0x513567
push ecx
call fcn.005bc500
add esp, 4
mov dword [esp + 0x1b8], ebp
mov dword [esp + 0x1bc], ebp
mov dword [esp + 0x1c0], ebp
jmp case.default.0x513567
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jge 0x5169bf
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
lea ecx, [esp + 0x350]
mov dword [esp + 0x33c], 0x50
call fcn.00404fa0
mov byte [esp + 0x33c], 0x4f
lea ecx, [esp + 0x34c]
call fcn.005581a0
lea ecx, [esp + 0x344]
mov dword [esp + 0x33c], 0xffffffff
call fcn.005581a0
jmp 0x516afd
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [0x5e6258]
jmp 0x516aaa
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 4
jl case.default.0x513567
push 3
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [0x5e79e0]
fsub qword [0x5e62a0]
mov ecx, dword [esp + 0x360]
sub esp, 8
fstp qword [esp]
push str._.2f
push ecx
jmp 0x516abd
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 3
jl case.default.0x513567
push 2
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [0x5e6258]
mov edx, dword [esp + 0x360]
sub esp, 8
fstp qword [esp]
push str._.2f
push edx
jmp 0x516abd
lea ecx, [esp + 0x10]
call fcn.00558520
cmp ax, 4
jl case.default.0x513567
push 3
lea ecx, [esp + 0x14]
call fcn.00558380
and eax, 0xff
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [0x5e79e0]
fsub qword [0x5e62a0]
mov eax, dword [esp + 0x360]
sub esp, 8
fstp qword [esp]
push str._.2f
push eax
call fcn.005bcf3d
add esp, 0x10
lea ecx, [esp + 0x10]
mov byte [esp + 0x33c], bl
call fcn.005581a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x33c], 0
call fcn.005581a0
lea ecx, [esp + 0x344]
mov dword [esp + 0x33c], 0xffffffff
call fcn.004043e0
mov ecx, dword [esp + 0x334]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x330
ret 0x24