Function at 0x474608
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x188
mov qword [rsp + 0xf0], r8
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0xe8], rcx
lea rax, [rsp + 0x120]
mov qword [rsp + 0xa0], rax
mov esi, 0x27f08a84
movabs r10, 0x101010101010101
mov r9d, 0x7027e20c
mov r11d, 0x46ed2489
mov r15d, 0x94e8b493
mov edi, 0xffffffff
mov r13d, 0xe8fddf94
mov r12d, 0xbd75b06d
mov r8d, 0x1f519ec1
mov eax, 0x3f0e4b7e
jmp 0x474687
mov esi, 0xfd28c268
cmp esi, 0x27f08a84
jne 0x474966
mov rcx, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0xa0]
mov ecx, dword [0x00506114]
mov esi, dword [0x00506118]
lea ebx, [rcx - 1]
imul ebx, ecx
mov ecx, ebx
xor ecx, 0xfffffffe
test ecx, ebx
sete byte [rsp + 0x40]
cmp esi, 0xa
setl byte [rsp + 0xa8]
mov r14d, 0x1f673976
jmp 0x4748a3
cmp r14d, 0x46ed2488
jg 0x4747d6
cmp r14d, 0x1f673976
je 0x474839
cmp r14d, 0x3f0e4b7e
jne 0x4748a3
movzx ecx, byte [rsp + 0x30]
movd xmm0, ecx
imul rcx, r10
mov qword [rbp + 0x60], rcx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0x50
movdqu xmmword [rbp + 0x50], xmm0
movdqu xmmword [rbp + 0x40], xmm0
movdqu xmmword [rbp + 0x30], xmm0
movdqu xmmword [rbp + 0x20], xmm0
movdqu xmmword [rbp + 0x10], xmm0
movdqu xmmword [rbp], xmm0
mov ecx, dword [0x00506114]
lea edx, [rcx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, edi
sete cl
mov r14d, 0xbd75b06d
cmove r14d, r13d
cmp dword [0x00506118], 0xa
setl dl
cmovge r14d, r12d
xor dl, cl
cmovne r14d, r13d
jmp 0x4748a3
cmp r14d, 0x94e8b493
je 0x474862
cmp r14d, 0xbd75b06d
jne 0x4748a3
movzx ecx, byte [rsp + 0x30]
movd xmm0, ecx
imul rcx, r10
mov qword [rbp + 0x60], rcx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0x50
movdqu xmmword [rbp + 0x50], xmm0
movdqu xmmword [rbp + 0x40], xmm0
movdqu xmmword [rbp + 0x30], xmm0
movdqu xmmword [rbp + 0x20], xmm0
movdqu xmmword [rbp + 0x10], xmm0
movdqu xmmword [rbp], xmm0
mov r14d, 0x3f0e4b7e
jmp 0x4748a3
cmp r14d, 0x46ed2489
je 0x47486a
cmp r14d, 0x65983c79
jne 0x4748a3
mov ecx, dword [0x00506114]
mov edx, ecx
neg edx
not edx
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, edi
sete cl
mov r14d, 0xbd75b06d
cmove r14d, eax
cmp dword [0x00506118], 0xa
setl dl
cmovge r14d, r12d
xor dl, cl
cmovne r14d, eax
jmp 0x4748a3
mov r14d, 0xd955d23d
jmp 0x4748a3
mov r14d, 0x65983c79
jmp 0x4748a3
mov dl, byte [rsp + 0x40]
mov bl, byte [rsp + 0xa8]
mov ecx, edx
xor cl, bl
test bl, bl
mov r14d, 0x94e8b493
cmovne r14d, r11d
test dl, dl
cmove r14d, r15d
test cl, cl
cmovne r14d, r11d
jmp 0x4748a3
mov r14d, 0x46ed2489
jmp 0x4748a3
mov byte [rsp + 0x30], 0
mov ecx, dword [0x00506114]
lea edx, [rcx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, edi
sete cl
mov r14d, 0x94e8b493
cmove r14d, r8d
cmp dword [0x00506118], 0xa
setl dl
cmovge r14d, r15d
xor dl, cl
cmovne r14d, r8d
cmp r14d, 0x1f673975
jg 0x4746d7
cmp r14d, 0xd955d23c
jle 0x474774
cmp r14d, 0xe8fddf94
je 0x474829
cmp r14d, 0x1f519ec1
je 0x474831
cmp r14d, 0xd955d23d
jne 0x4748a3
mov ecx, dword [0x0050611c]
mov edx, ecx
neg edx
not edx
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
cmp dword [0x00506128], 9
setg bl
test ecx, edx
setne cl
mov edx, ebx
xor dl, cl
or bl, cl
xor bl, 1
or bl, dl
mov ecx, 0x29334c8
mov edx, 0xf7555397
cmovne ecx, edx
mov esi, 0x29334c8
cmovne esi, r9d
mov ebp, 0x617b206a
mov ebx, ebp
cmp ebx, 0x617b2069
jle 0x47493f
cmp ebx, 0x617b206a
mov ebp, ecx
je 0x474929
jmp 0x474958
cmp ebx, 0xf7555397
mov ebp, esi
je 0x474929
cmp ebx, 0x29334c8
jne 0x474964
mov ebp, 0xf7555397
jmp 0x474929
cmp ebx, 0x7027e20c
je 0x474682
jmp 0x474964
cmp esi, 0xfd28c268
jne 0x47498a
xor eax, eax
lea rsi, [rsp + 0x128]
mov dword [rsi - 8], eax
mov dword [rsi - 4], eax
mov qword [rsp + 0x30], rsi
mov eax, 0xfcec295f
jmp 0x4749f0
jmp 0x47498a
mov rax, qword [rsp + 0x30]
mov dword [rax], 0x6a09e667
mov rax, qword [rsp + 0x30]
mov dword [rax + 4], 0xbb67ae85
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], 0x3c6ef372
mov rax, qword [rsp + 0x30]
mov dword [rax + 0xc], 0xa54ff53a
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x10], 0x510e527f
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x14], 0x9b05688c
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x18], 0x1f83d9ab
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1c], 0x5be0cd19
mov eax, 0x252cce27
cmp eax, 0xfcec295f
je 0x47498c
cmp eax, 0x252cce27
jne 0x474a72
mov eax, dword [0x00506120]
mov ecx, eax
neg ecx
not ecx
imul ecx, eax
not ecx
or ecx, 0xfffffffe
mov r15d, 0xffffffff
cmp ecx, r15d
sete byte [rsp + 0x24]
mov eax, dword [0x0050612c]
cmp eax, 0xa
setl byte [rsp + 0x25]
mov rbp, qword [rsp + 0x98]
neg rbp
not rbp
mov eax, 0x8d3a8ba8
movabs r12, 0x7fffffffffffffff
mov r13d, 0xbef571aa
mov dword [rsp + 0x4c], ecx
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x80], rcx
jmp 0x47530b
jmp 0x474a72
cmp eax, 0x84a479b4
je 0x475248
cmp eax, 0x84f7112a
jne 0x47530b
call fcn.0042c9b2
mov eax, 0xd6f9b642
jmp 0x47530b
cmp eax, 0x3c9ae075
je 0x475260
cmp eax, 0x3efc68e4
jne 0x47530b
mov eax, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x6c]
cmp ecx, eax
setb al
mov byte [rsp + 0x2e], al
mov eax, 0xb1bc8d1e
jmp 0x47530b
cmp eax, 0xb9f0a46f
je 0x4752a3
cmp eax, 0xbce9629f
jne 0x47530b
mov eax, 0xaf405694
jmp 0x47530b
cmp eax, 0x15f50874
je 0x4752d1
cmp eax, 0x1d4ff904
jne 0x47530b
lea rax, [rsp + 0x148]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0x70]
add rax, qword [rsp + 0xd0]
mov qword [rsp + 0x100], rax
mov eax, 0xc47c6f87
jmp 0x47530b
cmp eax, 0x9233187d
je 0x4752f8
cmp eax, 0x965877de
jne 0x47530b
mov eax, dword [0x00506120]
lea ecx, [rax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, r15d
sete cl
mov eax, 0x9a8ea248
mov ebx, 0x1319022b
cmove eax, ebx
cmp dword [0x0050612c], 0xa
setl dl
mov edi, 0x9a8ea248
jmp 0x4750cd
cmp eax, 0x649d2cdc
je 0x4752ff
cmp eax, 0x673d09d5
jne 0x47530b
mov rax, qword [rsp + 0xc8]
cmp rax, qword [rsp + 0x40]
setle byte [rsp + 0x27]
mov eax, 0xd2dc4a59
jmp 0x47530b
cmp eax, 0xd364e14c
je 0x475306
cmp eax, 0xd51c6131
jne 0x47530b
mov rax, qword [rsp + 0x50]
cmp rax, qword [rsp + 0x98]
setge byte [rsp + 0x29]
mov eax, 0x3c9ae075
jmp 0x47530b
mov eax, 0xfd6fc6bb
jmp 0x47530b
cmp qword [rsp + 0x50], 0
sets byte [rsp + 0x28]
mov eax, 0x19aa9c0
jmp 0x47530b
mov eax, 0xeba85097
jmp 0x47530b
mov rax, qword [rsp + 0x60]
mov eax, 0x39f49a1c
jmp 0x47530b
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
and eax, 0x3f
mov dword [rsp + 0xbc], eax
mov eax, dword [0x00506120]
mov ecx, eax
neg ecx
not ecx
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, r15d
sete cl
mov eax, 0xf0eeb388
mov edi, 0x88296ab9
cmove eax, edi
cmp dword [0x0050612c], 0xa
setl dl
mov ebx, 0xf0eeb388
jmp 0x4751d5
mov rcx, qword [rsp + 0x60]
xor edx, edx
mov r8, r12
call fcn.00443ca9
mov eax, 0xef6628c7
jmp 0x47530b
mov rdx, qword [rsp + 0x50]
add rdx, qword [rsp + 0xe8]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x100]
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x78]
add rax, qword [rsp + 0x50]
seto byte [rsp + 0x2c]
mov qword [rsp + 0x108], rax
mov eax, 0xac5bbfd8
jmp 0x47530b
mov qword [rsp + 0xf8], rbp
mov eax, 0xb46b5632
jmp 0x47530b
mov al, byte [rsp + 0x2b]
test al, al
mov eax, 0x1d4ff904
mov ecx, 0x2022ee5
cmovne eax, ecx
jmp 0x47530b
mov al, byte [rsp + 0x2c]
test al, al
mov eax, 0x554ba9a2
mov ecx, 0x70b2164c
cmovne eax, ecx
jmp 0x47530b
mov eax, 0x520b1fe1
jmp 0x47530b
mov rcx, qword [rsp + 0x70]
mov edx, 0x3f
call fcn.00445883
mov eax, 0x297d4c4f
jmp 0x47530b
call fcn.0042c9b2
mov eax, 0x9233187d
jmp 0x47530b
call fcn.0042c9b2
mov eax, 0x23e143a1
jmp 0x47530b
mov rax, qword [rsp + 0x30]
mov al, byte [rsp + 0x38]
mov byte [rsp + 0x2d], al
mov al, byte [rsp + 0x38]
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x110], rax
mov eax, dword [0x00506120]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
and eax, ecx
sete cl
test eax, eax
mov eax, 0x1db2a328
mov ebx, 0xc12837e5
cmove eax, ebx
cmp dword [0x0050612c], 0xa
setl dl
mov edi, 0x1db2a328
jmp 0x4750cd
mov al, byte [rsp + 0x2d]
test al, al
mov eax, 0x520b1fe1
mov ecx, 0x965877de
cmovne eax, ecx
jmp 0x47530b
mov eax, 0x3ab6c82b
xor ecx, ecx
mov qword [rsp + 0x80], rcx
mov r14, qword [rsp + 0x98]
jmp 0x47530b
mov eax, dword [0x00506120]
mov ecx, dword [0x0050612c]
lea edx, [rax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, r15d
sete al
cmp ecx, 0xa
setl bl
xor bl, al
mov ebx, 0xbef571aa
mov edi, 0x124fb7bc
cmovne ebx, edi
cmp edx, r15d
mov eax, ebx
cmove eax, edi
mov r13d, 0xbef571aa
jmp 0x47522e
mov rax, qword [rsp + 0x70]
mov eax, 0x20a147ea
jmp 0x47530b
mov eax, 0x1d4ff904
jmp 0x47530b
mov eax, dword [0x00506120]
mov ecx, eax
neg ecx
not ecx
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
and eax, ecx
sete cl
test eax, eax
mov eax, 0xf0eeb388
mov ebx, 0x4fb1d8ac
cmove eax, ebx
cmp dword [0x0050612c], 0xa
setl dl
mov edi, 0xf0eeb388
jmp 0x4750cd
mov eax, 0x85625397
jmp 0x47530b
mov eax, 0xdb88b2b
jmp 0x47530b
mov al, byte [rsp + 0x38]
mov rax, qword [rsp + 0x30]
mov al, byte [rsp + 0x38]
mov rax, qword [rsp + 0x30]
mov eax, 0xea0329d6
jmp 0x47530b
mov eax, 0x40
sub rax, qword [rsp + 0x70]
seto byte [rsp + 0x26]
mov qword [rsp + 0xc8], rax
mov eax, dword [0x00506120]
mov ecx, dword [0x0050612c]
lea edx, [rax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, r15d
sete al
cmp ecx, 0xa
setl bl
xor bl, al
mov ebx, 0x875d7705
mov edi, 0x7360143a
jmp 0x475223
call fcn.0042c9b2
mov eax, 0x1319022b
jmp 0x47530b
mov eax, 0x3147d382
jmp 0x47530b
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x90], rax
mov eax, 0x3e0f845
mov dword [rsp + 0x4c], 0
mov rcx, qword [rsp + 0x110]
mov qword [rsp + 0x88], rcx
jmp 0x47530b
cmp dword [rsp + 0xbc], 0
sete byte [rsp + 0x2f]
mov eax, 0x84a479b4
jmp 0x47530b
call fcn.0042c9b2
mov eax, dword [0x00506120]
mov ecx, dword [0x0050612c]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
and eax, edx
sete dl
cmp ecx, 0xa
setl bl
xor bl, dl
mov edx, 0x84f7112a
mov ebx, 0x882ddc81
jmp 0x475291
mov al, byte [rsp + 0x2a]
test al, al
mov eax, 0xe53904ba
mov ecx, 0xe6bc2a41
cmovne eax, ecx
jmp 0x47530b
mov eax, dword [0x00506120]
mov ecx, dword [0x0050612c]
lea edx, [rax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, r15d
sete al
cmp ecx, 0xa
setl bl
xor bl, al
mov ebx, 0x512856f7
mov edi, 0xef6628c7
jmp 0x475223
cmp dword [rsp + 0x4c], 0
mov eax, 0xb1b93b0
mov ecx, 0x3ab6c82b
cmove eax, ecx
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x80], rcx
mov r14, qword [rsp + 0x88]
jmp 0x47530b
mov cl, byte [rsp + 0x24]
mov al, byte [rsp + 0x25]
mov edx, ecx
xor dl, al
test al, al
mov eax, 0xbef571aa
mov ebx, 0x85625397
cmovne eax, ebx
test cl, cl
cmove eax, r13d
test dl, dl
cmovne eax, ebx
jmp 0x47530b
mov eax, dword [0x00506120]
lea ecx, [rax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, r15d
sete cl
mov eax, 0x6db51e65
mov ebx, 0x8f01e9de
cmove eax, ebx
cmp dword [0x0050612c], 0xa
setl dl
mov edi, 0x6db51e65
jmp 0x4750cd
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xa8], rax
mov byte [rsp + 0xb0], 0
mov eax, 0xb9f0a46f
jmp 0x47530b
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x40]
sub rcx, rax
mov qword [rsp + 0x30], rcx
seto byte [rsp + 0x38]
mov eax, 0x6611407
jmp 0x47530b
mov eax, dword [0x00506120]
mov ecx, eax
neg ecx
not ecx
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
and eax, ecx
sete cl
test eax, eax
mov eax, 0x875d7705
mov ebx, 0x20a147ea
cmove eax, ebx
cmp dword [0x0050612c], 0xa
setl dl
mov edi, 0x875d7705
cmovge eax, edi
xor dl, cl
cmovne eax, ebx
jmp 0x47530b
lea rax, [rsp + 0x120]
mov qword [rsp + 0xc0], rax
mov eax, 0x15f50874
jmp 0x47530b
cmp qword [rsp + 0x60], 0
sets byte [rsp + 0x2b]
mov eax, dword [0x00506120]
mov ecx, dword [0x0050612c]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
and eax, edx
sete dl
cmp ecx, 0xa
setl bl
xor bl, dl
mov edx, 0x89a79e1e
mov ebx, 0x9b50bdac
jmp 0x475291
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x40], r14
cmp qword [rsp + 0x40], 0
mov eax, 0xca7d2761
mov ecx, 0xcd94bc04
cmovg eax, ecx
jmp 0x47530b
mov al, byte [rsp + 0x2e]
test al, al
mov eax, 0x4d6b9294
mov ecx, 0xf5c26370
cmovne eax, ecx
jmp 0x47530b
mov rdx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x50]
call fcn.00445883
mov eax, 0x36f707c6
jmp 0x47530b
mov eax, 0x59db9b05
jmp 0x47530b
mov qword [rsp + 0xe0], rsi
mov eax, dword [0x00506120]
lea ecx, [rax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, r15d
sete cl
mov eax, 0x3bf2b14c
mov edi, 0xd364e14c
cmove eax, edi
cmp dword [0x0050612c], 0xa
setl dl
mov ebx, 0x3bf2b14c
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
jmp 0x47530b
mov rcx, qword [rsp + 0x60]
xor edx, edx
mov r8, r12
call fcn.00443ca9
mov eax, dword [0x00506120]
mov ecx, dword [0x0050612c]
mov edx, eax
neg edx
not edx
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, r15d
sete al
cmp ecx, 0xa
setl bl
xor bl, al
mov ebx, 0x512856f7
mov edi, 0x649d2cdc
cmovne ebx, edi
cmp edx, r15d
mov eax, ebx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, ebx
jmp 0x47530b
mov rax, qword [rsp + 0x58]
mov eax, 0x4fb1d8ac
jmp 0x47530b
mov al, byte [rsp + 0x2f]
test al, al
mov eax, 0x684f1f47
mov ecx, 0xc2bf2b5b
cmovne eax, ecx
jmp 0x47530b
mov eax, dword [0x00506120]
mov ecx, dword [0x0050612c]
mov edx, eax
neg edx
not edx
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
and eax, edx
sete dl
cmp ecx, 0xa
setl bl
xor bl, dl
mov edx, 0x6db51e65
mov ebx, 0x8e4eedfe
cmovne edx, ebx
test eax, eax
mov eax, edx
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edx
jmp 0x47530b
mov rax, qword [rsp + 0xa8]
mov al, byte [rsp + 0xb0]
mov byte [rsp + 0x2a], al
mov al, byte [rsp + 0xb0]
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x60], rax
mov eax, 0xdb7b2a4e
jmp 0x47530b
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
mov ecx, eax
xor ecx, 0xffffffc0
and ecx, eax
mov qword [rsp + 0x70], rcx
mov eax, 0xcd6d8bd3
jmp 0x47530b
mov eax, 0x554ba9a2
jmp 0x47530b
mov eax, 0x4c224075
jmp 0x47530b
mov eax, 0x4e4b35b6
cmp eax, 0xfd557e11
jle 0x47536b
cmp eax, 0x3c9ae074
jg 0x4753d3
cmp eax, 0x15f50873
jg 0x4754b0
cmp eax, 0xb1b93af
jg 0x4755ca
cmp eax, 0x2022ee4
jg 0x475870
cmp eax, 0xfd557e12
je 0x474be1
cmp eax, 0xfd6fc6bb
je 0x474beb
cmp eax, 0x19aa9c0
jne 0x47530b
mov al, byte [rsp + 0x28]
test al, al
mov eax, 0xd51c6131
jmp 0x4758f8
cmp eax, 0xb9f0a46e
jg 0x475442
cmp eax, 0x9233187c
jg 0x4754f1
cmp eax, 0x882ddc80
jle 0x475634
cmp eax, 0x8d3a8ba7
jg 0x4758cc
cmp eax, 0x882ddc81
je 0x474c00
cmp eax, 0x89a79e1e
je 0x474c0a
cmp eax, 0x8d02a0f2
jne 0x47530b
mov rax, qword [rsp + 0xd8]
mov ecx, dword [rsp + 0xb8]
mov dword [rax], ecx
mov eax, 0x4d6b9294
jmp 0x47530b
cmp eax, 0x649d2cdb
jg 0x47553a
cmp eax, 0x4fb1d8ab
jle 0x47566a
cmp eax, 0x531a55ff
jg 0x475905
cmp eax, 0x4fb1d8ac
je 0x474c19
cmp eax, 0x512856f7
je 0x474c65
cmp eax, 0x520b1fe1
jne 0x47530b
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
mov rcx, qword [rsp + 0x78]
mov dword [rsp + 0x68], ecx
add eax, dword [rsp + 0x68]
mov dword [rsp + 0x6c], eax
mov rax, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x6c]
mov dword [rax], ecx
mov eax, 0x3efc68e4
jmp 0x47530b
cmp eax, 0xd364e14b
jg 0x475589
cmp eax, 0xc47c6f86
jle 0x4756c9
cmp eax, 0xcd6d8bd2
jg 0x47594b
cmp eax, 0xc47c6f87
je 0x474c7e
cmp eax, 0xc6b5bb09
je 0x474cbe
cmp eax, 0xca7d2761
jne 0x47530b
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x88], rax
mov eax, 0x3e0f845
mov dword [rsp + 0x4c], 4
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x90], rcx
jmp 0x47530b
cmp eax, 0x297d4c4e
jle 0x475728
cmp eax, 0x39f49a1b
jg 0x47598f
cmp eax, 0x297d4c4f
je 0x474be1
cmp eax, 0x3147d382
je 0x474cd0
cmp eax, 0x36f707c6
jne 0x47530b
mov eax, 0x531a5600
jmp 0x47530b
cmp eax, 0xac5bbfd7
jle 0x47575e
cmp eax, 0xb1bc8d1d
jg 0x4759ba
cmp eax, 0xac5bbfd8
je 0x474ce8
cmp eax, 0xaf405694
je 0x474d00
cmp eax, 0xb18acd4e
jne 0x47530b
mov rax, qword [rsp + 0xe0]
mov eax, 0x9f35af8c
jmp 0x47530b
cmp eax, 0x6fea348d
jle 0x4757d6
cmp eax, 0x73f5e733
jg 0x4759f8
cmp eax, 0x6fea348e
je 0x474d0a
cmp eax, 0x70b2164c
je 0x474d23
cmp eax, 0x7360143a
jne 0x47530b
mov al, byte [rsp + 0x26]
test al, al
mov eax, 0x673d09d5
mov ecx, 0x7ae41ce1
cmovne eax, ecx
jmp 0x47530b
cmp eax, 0xe6bc2a40
jle 0x47580c
cmp eax, 0xef6628c6
jg 0x475a51
cmp eax, 0xe6bc2a41
je 0x474d32
cmp eax, 0xea0329d6
je 0x474d41
cmp eax, 0xeba85097
jne 0x47530b
mov eax, 0x673d09d5
jmp 0x47530b
cmp eax, 0xdb88b2a
jle 0x475a90
cmp eax, 0xdb88b2b
je 0x474d98
cmp eax, 0x124fb7bc
je 0x474db0
cmp eax, 0x1319022b
jne 0x47530b
call fcn.0042c9b2
mov eax, dword [0x00506120]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
and eax, ecx
sete cl
test eax, eax
mov eax, 0x9a8ea248
mov edi, 0xbce9629f
cmove eax, edi
cmp dword [0x0050612c], 0xa
setl dl
mov ebx, 0x9a8ea248
jmp 0x4751d5
cmp eax, 0x85625396
jle 0x474a74
cmp eax, 0x85625397
je 0x474dcc
cmp eax, 0x875d7705
je 0x474e11
cmp eax, 0x88296ab9
jne 0x47530b
mov eax, 0x69832801
jmp 0x47530b
cmp eax, 0x4c224074
jle 0x474a99
cmp eax, 0x4c224075
je 0x474e20
cmp eax, 0x4d6b9294
je 0x474e2a
cmp eax, 0x4e4b35b6
jne 0x47530b
mov eax, dword [0x00506120]
mov ecx, dword [0x0050612c]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
and eax, edx
sete dl
cmp ecx, 0xa
setl bl
xor bl, dl
mov edx, 0xb18acd4e
mov ebx, 0x9f35af8c
jmp 0x475291
cmp eax, 0xbef571a9
jle 0x474aca
cmp eax, 0xbef571aa
je 0x474e66
cmp eax, 0xc12837e5
je 0x474e70
cmp eax, 0xc2bf2b5b
jne 0x47530b
mov eax, dword [0x00506120]
mov ecx, dword [0x0050612c]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
and eax, edx
sete dl
cmp ecx, 0xa
setl bl
xor bl, dl
mov edx, 0x3bf2b14c
mov ebx, 0x79da7afc
jmp 0x475291
cmp eax, 0x1db2a327
jle 0x474aea
cmp eax, 0x1db2a328
je 0x474e7a
cmp eax, 0x20a147ea
je 0x474e96
cmp eax, 0x23e143a1
jne 0x47530b
mov eax, 0xe53904ba
jmp 0x47530b
cmp eax, 0x9a8ea247
jle 0x474b2f
cmp eax, 0x9a8ea248
je 0x474ee1
cmp eax, 0x9b50bdac
je 0x474ef0
cmp eax, 0x9f35af8c
jne 0x47530b
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x118], rax
mov eax, dword [0x00506120]
mov ecx, eax
neg ecx
not ecx
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
and eax, ecx
sete cl
test eax, eax
mov eax, 0xb18acd4e
mov ebx, 0x73f5e734
cmove eax, ebx
cmp dword [0x0050612c], 0xa
setl dl
mov edi, 0xb18acd4e
jmp 0x4750cd
cmp eax, 0x684f1f46
jle 0x474b7d
cmp eax, 0x684f1f47
je 0x474efa
cmp eax, 0x69832801
je 0x474f2c
cmp eax, 0x6db51e65
jne 0x47530b
mov eax, 0x8e4eedfe
jmp 0x47530b
cmp eax, 0xd6f9b641
jle 0x474baf
cmp eax, 0xd6f9b642
je 0x474f43
cmp eax, 0xdb7b2a4e
je 0x474f7b
cmp eax, 0xe53904ba
jne 0x47530b
mov eax, dword [0x00506120]
lea ecx, [rax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, r15d
sete cl
mov eax, 0x89a79e1e
mov ebx, 0x39f49a1c
cmove eax, ebx
cmp dword [0x0050612c], 0xa
setl dl
mov edi, 0x89a79e1e
jmp 0x4750cd
cmp eax, 0x2022ee5
je 0x474f93
cmp eax, 0x3e0f845
je 0x474fc7
cmp eax, 0x6611407
jne 0x47530b
mov eax, dword [0x00506120]
mov ecx, eax
neg ecx
not ecx
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, r15d
sete cl
mov eax, 0x1db2a328
mov edi, 0xea0329d6
cmove eax, edi
cmp dword [0x0050612c], 0xa
setl dl
mov ebx, 0x1db2a328
jmp 0x4751d5
cmp eax, 0x8d3a8ba8
je 0x474ff6
cmp eax, 0x8e4eedfe
je 0x475021
cmp eax, 0x8f01e9de
jne 0x47530b
mov al, byte [rsp + 0x29]
test al, al
mov eax, 0x531a5600
mov ecx, 0xc6b5bb09
cmovne eax, ecx
jmp 0x47530b
cmp eax, 0x531a5600
je 0x475056
cmp eax, 0x554ba9a2
je 0x475075
cmp eax, 0x59db9b05
jne 0x47530b
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x118]
mov r8d, 0x40
call fcn.00475b88
mov eax, 0x684f1f47
jmp 0x47530b
cmp eax, 0xcd6d8bd3
je 0x475096
cmp eax, 0xcd94bc04
je 0x4750da
cmp eax, 0xd2dc4a59
jne 0x47530b
mov rax, qword [rsp + 0xc8]
mov cl, byte [rsp + 0x27]
test cl, cl
cmove rax, qword [rsp + 0x40]
mov qword [rsp + 0x78], rax
mov eax, 0xfd557e12
jmp 0x47530b
cmp eax, 0x39f49a1c
je 0x4750f4
cmp eax, 0x3ab6c82b
je 0x475132
cmp eax, 0x3bf2b14c
jne 0x47530b
mov eax, 0x79da7afc
jmp 0x47530b
cmp eax, 0xb1bc8d1e
je 0x47515c
cmp eax, 0xb46b5632
je 0x475174
cmp eax, 0xb95e2b6b
jne 0x47530b
mov rax, qword [rsp + 0xd8]
mov eax, dword [rax]
inc eax
mov dword [rsp + 0xb8], eax
mov eax, 0x8d02a0f2
jmp 0x47530b
cmp eax, 0x73f5e734
je 0x475190
cmp eax, 0x79da7afc
je 0x47519a
cmp eax, 0x7ae41ce1
jne 0x47530b
mov eax, dword [0x00506120]
lea ecx, [rax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, r15d
sete cl
mov eax, 0x84f7112a
mov edi, 0xd6f9b642
cmove eax, edi
cmp dword [0x0050612c], 0xa
setl dl
mov ebx, 0x84f7112a
jmp 0x4751d5
cmp eax, 0xef6628c7
je 0x4751e2
cmp eax, 0xf0eeb388
je 0x475239
cmp eax, 0xf5c26370
jne 0x47530b
mov rax, qword [rsp + 0xc0]
add rax, 4
mov qword [rsp + 0xd8], rax
mov eax, 0xb95e2b6b
jmp 0x47530b
cmp eax, 0xb1b93b0
jne 0x47530b
lea rsi, [rsp + 0x120]
mov rcx, rsi
mov rdx, qword [rsp + 0xf0]
call fcn.00483e9e
mov qword [rsp + 0x30], rsi
mov eax, 0xedbdd262
jmp 0x475ad3
mov rcx, qword [rsp + 0x30]
mov edx, 0x68
call fcn.00473cb8
mov eax, 0x3f6e2a1e
cmp eax, 0xedbdd262
je 0x475abf
cmp eax, 0x3f6e2a1e
jne 0x475b33
mov eax, dword [0x00506130]
mov ecx, dword [0x00506138]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
and eax, edx
setne dl
test eax, eax
sete al
cmp ecx, 0xa
setl bl
cmp ecx, 9
setg cl
xor bl, al
or cl, dl
xor cl, 1
or cl, bl
mov eax, 0xc51ae348
mov edx, 0xe37ccb67
cmove eax, edx
mov ecx, 0x50f19747
cmove ecx, edx
mov ebp, 0xcde136b2
jmp 0x475b42
jmp 0x475b33
cmp edx, 0xe37ccb67
jne 0x475b62
mov ebp, 0xc51ae348
mov edx, ebp
cmp edx, 0xe37ccb66
jg 0x475b35
cmp edx, 0xcde136b2
mov ebp, eax
je 0x475b42
cmp edx, 0xc51ae348
mov ebp, ecx
je 0x475b42
jmp 0x475b86
cmp edx, 0x50f19747
jne 0x475b86
mov rax, qword [rsp + 0xa0]
add rsp, 0x188
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
jmp 0x475b86