Function at 0x4769c2
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Hash data using murmur3
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x20e0
call fcn.0053ec40
mov bl, byte [edx + 0xf]
lea esi, [esp + 0xc8]
xorps xmm0, xmm0
mov edi, edx
mov dword [esp + 0x48], ecx
lea edx, [esp + 0xa0]
mov ecx, esi
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0xa0], xmm0
cmp bl, 2
jne 0x476a51
call fcn.00479a89
mov bh, byte [esi + 0x10]
cmp bh, 5
je 0x476e2c
movzx eax, word [esp + 0xd9]
mov dword [esp + 0x20], edi
mov edx, dword [esp + 0xc8]
mov esi, dword [esp + 0xcc]
mov edi, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov word [esp + 0x24], ax
mov ah, byte [esp + 0xdb]
mov byte [esp + 0x26], ah
jmp 0x476aa8
call fcn.00479a89
mov bh, byte [esi + 0x10]
cmp bh, 5
jne 0x476a67
mov byte [edi + 0xf], 2
jmp 0x476e2c
mov cl, byte [esp + 0xdb]
mov dword [esp + 0x20], edi
movzx eax, word [esp + 0xd9]
mov edx, dword [esp + 0xc8]
mov esi, dword [esp + 0xcc]
mov edi, dword [esp + 0xd0]
cmp bl, 3
mov byte [esp + 0x26], cl
mov ecx, dword [esp + 0xd4]
mov word [esp + 0x24], ax
je 0x47805f
add bl, 0xfe
mov dword [esp + 0x1c], ecx
cmp bl, 3
ja 0x476b2c
cmp bl, 2
je 0x476b2c
xor eax, eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x78], fcn.004799a4
mov dword [esp + 0x7c], 0x400000
mov eax, dword [0x5c9084]
test al, al
je 0x476bca
lea esi, [esp + 0x70]
mov ecx, esi
mov byte [esi + 0xe], al
call fcn.004796a0
mov al, byte [esi + 0xf]
movsd xmm0, qword [esi + 1]
mov cl, byte [esi]
movsd xmm1, qword [esi + 7]
cmp al, 2
movsd qword [esp + 0x90], xmm0
movsd qword [esp + 0x96], xmm1
jne 0x476d77
mov dword [esp + 8], ecx
mov dword [esp + 0x18], edi
jmp 0x477db3
mov edx, dword [esp + 0x20]
lea eax, [esp + 0xa0]
lea esi, [esp + 0xc8]
mov ecx, esi
push eax
call fcn.004799c8
add esp, 4
mov al, byte [esi + 0x10]
cmp al, 5
je 0x476e01
lea esi, [esp + 0xd9]
mov byte [esp + 0xc], al
test edi, edi
mov eax, dword [esi - 0x11]
mov edx, dword [esi - 0xd]
mov ebx, dword [esi - 9]
mov ecx, dword [esi - 5]
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], edx
mov dword [esp], ecx
je 0x476bad
push edi
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x20]
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
mov ebx, dword [esp + 4]
je 0x476bad
mov eax, dword [esp + 0x1c]
cmp dword [eax + 8], 9
jb 0x476b9f
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
mov al, byte [esi + 2]
movzx ecx, word [esi]
mov edi, ebx
mov esi, dword [esp]
mov bh, byte [esp + 0xc]
mov byte [esp + 0x26], al
mov word [esp + 0x24], cx
jmp 0x477e0c
mov byte [esp + 0xc], bh
mov dword [esp + 0x18], edi
mov dword [esp], fcn.004799a4
call fcn.004799a4
mov ebx, edx
lea edi, [esp + 0xc8]
mov esi, eax
push 0x800
xor eax, eax
push eax
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
xor eax, eax
mov dword [edi + 0x804], ebx
mov dword [edi + 0x800], esi
xor ebx, ebx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x30], 0
mov dword [edi + 0x808], eax
mov dword [edi + 0x80c], eax
xor edi, edi
cmp edi, 0x190
mov eax, ebx
sbb eax, 0
jae 0x477cdb
mov dword [esp + 0x10], edi
add edi, 1
mov eax, ebx
adc eax, 0
mov dword [esp + 0x14], edi
mov dword [esp + 4], eax
call dword [esp]
mov edi, edx
lea ecx, [esp + 0x70]
lea edx, [esp + 0xc8]
mov esi, eax
call fcn.00479842
mov edx, esi
lea ecx, [esp + 0x70]
push edi
call fcn.0047987b
add esp, 4
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call eax
mov ecx, esi
mov dword [esp + 8], 0
mov dword [esp + 0x28], edi
or ecx, edi
je 0x477daf
mov ecx, eax
or ecx, edx
je 0x477daf
mov ecx, eax
sub ecx, esi
je 0x477da9
cmp dword [esp + 0x10], 0x64
mov dword [esp + 8], esi
mov esi, dword [esp + 0x14]
sbb ebx, 0
mov ebx, dword [esp + 4]
mov edi, esi
jb 0x476c58
mov edi, dword [esp + 0x8d0]
mov dword [esp + 0x8d0], ecx
sub edi, ecx
sete bl
cmp edi, dword [esp + 0x8d4]
mov dword [esp + 0x8d4], edi
mov edi, esi
sete bh
or bh, bl
movzx ebx, bh
add dword [esp + 0x4c], ebx
mov ebx, dword [esp + 4]
adc dword [esp + 0x50], 0
cmp dword [esp + 8], eax
sbb dword [esp + 0x28], edx
sbb dword [esp + 0x3c], 0xffffffff
imul eax, ecx, 0xc28f5c29
add eax, 0x51eb850
ror eax, 2
cmp eax, 0x28f5c29
mov eax, ecx
adc dword [esp + 0x54], 0
adc dword [esp + 0x58], 0
sub eax, dword [esp + 0x38]
mov dword [esp + 0x38], ecx
mov edx, eax
neg edx
cmovs edx, eax
mov eax, edx
sar eax, 0x1f
add dword [esp + 0x44], edx
adc dword [esp + 0x30], eax
jmp 0x476c58
movsd xmm0, qword [esp + 0x90]
movsd xmm1, qword [esp + 0x96]
lea edx, [esp + 0x60]
lea esi, [esp + 0xc8]
movsd qword [edx + 7], xmm1
movsd qword [edx + 1], xmm0
mov byte [edx], cl
mov byte [edx + 0xf], al
lea eax, [esp + 0xa0]
mov ecx, esi
push eax
call fcn.004799c8
add esp, 4
mov al, byte [esi + 0x10]
cmp al, 5
jne 0x477cac
movzx eax, word [esp + 0x6d]
mov ecx, dword [esp + 0x20]
mov word [esp + 0x2c], ax
mov eax, dword [esp + 0x60]
mov dword [ecx], eax
mov eax, dword [esp + 0x64]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x68]
mov dword [ecx + 8], eax
mov al, byte [esp + 0x6c]
mov byte [ecx + 0xc], al
movzx eax, word [esp + 0x2c]
mov word [ecx + 0xd], ax
mov al, byte [esp + 0x6f]
mov byte [esp + 0x2e], al
mov al, byte [esp + 0x2e]
mov byte [ecx + 0xf], al
mov esi, dword [esp + 0x1c]
test edi, edi
je 0x476e2c
push edi
call dword [esi]
add esp, 4
cmp dword [esi + 4], 0
je 0x476e2c
cmp dword [esi + 8], 9
jb 0x476e1e
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
movaps xmm0, xmmword [esp + 0xa0]
movaps xmm1, xmmword [esp + 0xb0]
movaps xmm2, xmmword [esp + 0xa0]
lea esi, [esp + 0x1110]
movaps xmmword [esp + 0x80], xmm1
movaps xmmword [esp + 0x70], xmm0
movaps xmmword [esi - 0x40], xmm0
movaps xmmword [esi - 0x30], xmm2
movaps xmm1, xmmword [esp + 0x80]
movaps xmmword [esi - 0x20], xmm1
push 0xfc0
push 0
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
movaps xmm0, xmmword [esp + 0x80]
mov edx, 0x10
movaps xmmword [esi - 0x10], xmm0
mov ecx, dword [esi - 0x40]
mov edi, dword [esp + edx*4 + 0x1094]
add ecx, dword [esp + edx*4 + 0x10b4]
mov esi, edi
mov ebx, edi
mov dword [esp], edi
shr edi, 3
rol esi, 0x19
rol ebx, 0xe
xor ebx, esi
mov esi, dword [esp + edx*4 + 0x10c8]
xor edi, ebx
add ecx, edi
mov ebx, esi
mov eax, esi
shr esi, 0xa
rol ebx, 0xf
rol eax, 0xd
xor eax, ebx
xor esi, eax
add esi, edx
add esi, ecx
mov ecx, dword [esp]
mov dword [esp + edx*4 + 0x10d0], esi
inc edx
cmp edx, 0x110
jne 0x476e90
movaps xmm0, xmmword [esp + 0x14d0]
movaps xmm1, xmmword [esp + 0x14e0]
mov edx, 0x110
movaps xmmword [esp + 0x10d0], xmm0
movaps xmm0, xmmword [esp + 0x1500]
mov ecx, dword [esp + 0x10d0]
movaps xmmword [esp + 0x1100], xmm0
movaps xmm0, xmmword [esp + 0x14f0]
movaps xmmword [esp + 0x10e0], xmm1
movaps xmmword [esp + 0x10f0], xmm0
mov eax, dword [esp + edx*4 + 0xc94]
mov esi, dword [esp + edx*4 + 0xcc8]
add ecx, dword [esp + edx*4 + 0xcb4]
mov edi, eax
mov ebx, eax
mov dword [esp], eax
rol edi, 0x19
rol ebx, 0xe
xor ebx, edi
mov edi, eax
mov eax, esi
shr edi, 3
rol eax, 0xd
xor edi, ebx
mov ebx, esi
shr esi, 0xa
rol ebx, 0xf
add ecx, edi
xor eax, ebx
xor esi, eax
add esi, edx
add esi, ecx
mov ecx, dword [esp]
mov dword [esp + edx*4 + 0xcd0], esi
inc edx
cmp edx, 0x500
jne 0x476f2f
mov eax, dword [esp + 0x48]
lea esi, [esp + 0xc8]
add eax, 4
mov dword [esp + 0x30], eax
lea eax, [esp + 0x10d0]
push 0x1000
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
xor eax, eax
mov ecx, 0x40
mov dword [esi + 0x1000], 0
test al, 0xf
jne 0x47803d
mov dword [esp + 0x40], ecx
mov ecx, eax
mov edx, 0x1ff
lea esi, [eax + 0x10]
lea ebx, [eax + 0x1f0]
and ecx, edx
and esi, edx
and ebx, edx
cmp eax, 0x200
mov dword [esp], ecx
mov dword [esp + 0x34], esi
mov dword [esp + 4], ebx
jae 0x477615
mov edi, dword [esp]
mov edx, dword [esp + ebx*4 + 0xe0]
mov esi, dword [esp + ebx*4 + 0xfc]
mov eax, dword [esp + edi*4 + 0xcc]
rol edx, 0x18
rol esi, 0x16
mov ecx, dword [esp + edi*4 + 0xd0]
add edx, dword [esp + edi*4 + 0xc8]
mov dword [esp + 0x10], eax
rol eax, 9
mov dword [esp + 0x14], ecx
rol ecx, 9
xor esi, eax
mov eax, 0xff
add edx, esi
mov dword [esp + edi*4 + 0xc8], edx
mov esi, dword [esp + ebx*4 + 0xd8]
mov edi, esi
shr esi, 0xe
and edi, eax
mov eax, 0x3fc
and esi, eax
mov eax, 0xff
mov esi, dword [esp + esi + 0xcc8]
add esi, dword [esp + edi*4 + 0x8c8]
mov edi, dword [esp]
xor esi, edx
mov dword [esp + edi*4 + 0xc8], esi
mov dword [esp + 0x1c], esi
mov edx, dword [esp + ebx*4 + 0xe4]
mov esi, dword [esp + ebx*4 + 0x100]
rol edx, 0x18
rol esi, 0x16
add edx, dword [esp + 0x10]
xor esi, ecx
add edx, esi
mov dword [esp + edi*4 + 0xcc], edx
mov ecx, dword [esp + ebx*4 + 0xdc]
mov esi, ecx
shr ecx, 0xe
and esi, eax
mov eax, 0x3fc
and ecx, eax
mov eax, dword [esp + ecx + 0xcc8]
mov ecx, 0xff
add eax, dword [esp + esi*4 + 0x8c8]
xor eax, edx
mov dword [esp + edi*4 + 0xcc], eax
mov dword [esp + 8], eax
mov esi, dword [esp + ebx*4 + 0x104]
mov edx, dword [esp + edi*4 + 0xd4]
mov dword [esp + 0x10], edx
rol edx, 9
rol esi, 0x16
xor esi, edx
mov edx, dword [esp + ebx*4 + 0xe8]
rol edx, 0x18
add edx, dword [esp + 0x14]
add edx, esi
mov dword [esp + edi*4 + 0xd0], edx
mov eax, dword [esp + ebx*4 + 0xe0]
mov esi, eax
shr eax, 0xe
and esi, ecx
mov ecx, 0x3fc
and eax, ecx
mov eax, dword [esp + eax + 0xcc8]
add eax, dword [esp + esi*4 + 0x8c8]
mov esi, dword [esp + 0x1c]
xor eax, edx
rol esi, 0x16
mov dword [esp + edi*4 + 0xd0], eax
mov dword [esp + 0x28], eax
mov eax, 0xff
mov edx, dword [esp + edi*4 + 0xd8]
mov dword [esp + 0x14], edx
rol edx, 9
xor esi, edx
mov edx, dword [esp + ebx*4 + 0xec]
rol edx, 0x18
add edx, dword [esp + 0x10]
add edx, esi
mov dword [esp + edi*4 + 0xd4], edx
mov ecx, dword [esp + ebx*4 + 0xe4]
mov esi, ecx
shr ecx, 0xe
and esi, eax
mov eax, 0x3fc
and ecx, eax
mov ecx, dword [esp + ecx + 0xcc8]
add ecx, dword [esp + esi*4 + 0x8c8]
mov esi, dword [esp + 8]
xor ecx, edx
rol esi, 0x16
mov dword [esp + edi*4 + 0xd4], ecx
mov dword [esp + 0x20], ecx
mov ecx, 0xff
mov edx, dword [esp + edi*4 + 0xdc]
mov dword [esp + 0x10], edx
rol edx, 9
xor esi, edx
mov edx, dword [esp + ebx*4 + 0xf0]
rol edx, 0x18
add edx, dword [esp + 0x14]
add edx, esi
mov dword [esp + edi*4 + 0xd8], edx
mov eax, dword [esp + ebx*4 + 0xe8]
mov esi, eax
shr eax, 0xe
and esi, ecx
mov ecx, 0x3fc
and eax, ecx
mov eax, dword [esp + eax + 0xcc8]
add eax, dword [esp + esi*4 + 0x8c8]
mov esi, dword [esp + 0x28]
xor eax, edx
rol esi, 0x16
mov dword [esp + edi*4 + 0xd8], eax
mov dword [esp + 0x14], eax
mov eax, edi
mov ecx, dword [esp + edi*4 + 0xe0]
mov edx, ecx
mov dword [esp + 0xc], ecx
rol edx, 9
xor esi, edx
mov edx, dword [esp + ebx*4 + 0xf4]
rol edx, 0x18
add edx, dword [esp + 0x10]
add edx, esi
mov dword [esp + edi*4 + 0xdc], edx
mov edi, 0xff
mov ecx, dword [esp + ebx*4 + 0xec]
mov esi, ecx
shr ecx, 0xe
and esi, edi
mov edi, 0x3fc
and ecx, edi
mov edi, 0xff
mov ecx, dword [esp + ecx + 0xcc8]
add ecx, dword [esp + esi*4 + 0x8c8]
mov esi, dword [esp + 0x20]
xor ecx, edx
mov edx, eax
rol esi, 0x16
mov dword [esp + eax*4 + 0xdc], ecx
mov dword [esp + 0x10], ecx
mov ecx, edx
mov eax, dword [esp + eax*4 + 0xe4]
mov edx, eax
mov dword [esp + 0x18], eax
rol edx, 9
xor esi, edx
mov edx, dword [esp + ebx*4 + 0xf8]
rol edx, 0x18
add edx, dword [esp + 0xc]
add edx, esi
mov dword [esp + ecx*4 + 0xe0], edx
mov eax, dword [esp + ebx*4 + 0xf0]
mov esi, eax
shr eax, 0xe
and esi, edi
mov edi, 0x3fc
and eax, edi
mov edi, dword [esp + eax + 0xcc8]
mov eax, dword [esp + 0x14]
add edi, dword [esp + esi*4 + 0x8c8]
rol eax, 0x16
mov esi, 0xff
xor edi, edx
mov dword [esp + ecx*4 + 0xe0], edi
rol edi, 0x16
mov edx, dword [esp + ecx*4 + 0xe8]
mov dword [esp + 0xc], edx
rol edx, 9
xor eax, edx
mov edx, ebx
mov ebx, dword [esp + ebx*4 + 0xfc]
rol ebx, 0x18
add ebx, dword [esp + 0x18]
add ebx, eax
mov dword [esp + ecx*4 + 0xe4], ebx
mov eax, dword [esp + edx*4 + 0xf4]
mov ecx, eax
shr eax, 0xe
and ecx, esi
mov esi, 0x3fc
and eax, esi
mov esi, dword [esp + eax + 0xcc8]
mov eax, dword [esp]
add esi, dword [esp + ecx*4 + 0x8c8]
xor esi, ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xe4], esi
mov dword [esp + 0x38], esi
mov esi, eax
mov ecx, dword [esp + eax*4 + 0xec]
rol ebx, 0x16
mov eax, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + edx*4 + 0x100]
rol eax, 9
xor ebx, eax
rol ecx, 0x18
add ecx, dword [esp + 0xc]
add ecx, ebx
mov dword [esp + esi*4 + 0xe8], ecx
mov esi, 0xff
mov eax, dword [esp + edx*4 + 0xf8]
mov ebx, eax
shr eax, 0xe
and ebx, esi
mov esi, 0x3fc
and eax, esi
mov esi, dword [esp]
mov eax, dword [esp + eax + 0xcc8]
add eax, dword [esp + ebx*4 + 0x8c8]
xor eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + esi*4 + 0xe8], eax
mov dword [esp + 0xc], eax
mov ebx, dword [esp + edx*4 + 0x104]
mov eax, dword [esp + esi*4 + 0xf0]
rol ecx, 0x18
rol ebx, 0x18
add ecx, eax
rol eax, 9
add ebx, dword [esp + 0x18]
xor edi, eax
add ebx, edi
mov dword [esp + esi*4 + 0xec], ebx
mov eax, dword [esp + edx*4 + 0xfc]
mov edx, 0xff
mov edi, eax
shr eax, 0xe
and edi, edx
mov edx, 0x3fc
and eax, edx
mov edx, dword [esp + 4]
mov eax, dword [esp + eax + 0xcc8]
add eax, dword [esp + edi*4 + 0x8c8]
xor eax, ebx
mov ebx, dword [esp + 8]
mov dword [esp + esi*4 + 0xec], eax
mov dword [esp + 0x3c], eax
mov eax, esi
mov edi, dword [esp + esi*4 + 0xf4]
mov esi, dword [esp + 0x38]
rol ebx, 0x18
add ebx, edi
rol edi, 9
rol esi, 0x16
xor esi, edi
add ecx, esi
mov esi, 0xff
mov dword [esp + eax*4 + 0xf0], ecx
mov edx, dword [esp + edx*4 + 0x100]
mov edi, edx
shr edx, 0xe
and edi, esi
mov esi, 0x3fc
and edx, esi
mov edx, dword [esp + edx + 0xcc8]
add edx, dword [esp + edi*4 + 0x8c8]
xor edx, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + eax*4 + 0xf0], edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xc]
mov edi, dword [esp + eax*4 + 0xf8]
rol ecx, 0x18
rol edx, 0x16
add ecx, edi
rol edi, 9
xor edx, edi
add ebx, edx
mov edx, eax
mov dword [esp + eax*4 + 0xf4], ebx
mov eax, dword [esp + 4]
mov esi, dword [esp + eax*4 + 0x104]
mov eax, 0xff
mov edi, esi
shr esi, 0xe
and edi, eax
mov eax, 0x3fc
and esi, eax
mov eax, dword [esp + esi + 0xcc8]
mov esi, edx
add eax, dword [esp + edi*4 + 0x8c8]
xor eax, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + edx*4 + 0xf4], eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + edx*4 + 0xfc]
rol ebx, 0x18
rol eax, 0x16
add ebx, edi
rol edi, 9
xor eax, edi
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + edx*4 + 0xf8], ecx
mov edx, 0xff
mov edi, eax
shr eax, 0xe
and edi, edx
mov edx, 0x3fc
and eax, edx
mov edx, esi
mov eax, dword [esp + eax + 0xcc8]
add eax, dword [esp + edi*4 + 0x8c8]
mov edi, edx
xor eax, ecx
mov dword [esp + esi*4 + 0xf8], eax
mov esi, dword [esp + 0x14]
rol eax, 0x16
mov ecx, dword [esp + edx*4 + 0x100]
rol esi, 0x18
add esi, ecx
rol ecx, 9
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x18]
rol esi, 0x16
xor esi, ecx
add ebx, esi
mov esi, 0xff
mov dword [esp + edx*4 + 0xfc], ebx
mov edx, dword [esp + 8]
mov ecx, edx
shr edx, 0xe
and ecx, esi
mov esi, 0x3fc
and edx, esi
mov esi, dword [esp + 0x14]
mov edx, dword [esp + edx + 0xcc8]
add edx, dword [esp + ecx*4 + 0x8c8]
xor edx, ebx
mov ebx, edi
mov dword [esp + edi*4 + 0xfc], edx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + edi*4 + 0x104]
rol edx, 0x18
add edx, ecx
rol ecx, 9
mov dword [esp + 0x10], edx
mov edx, dword [esp + 4]
rol edx, 0x16
xor edx, ecx
add esi, edx
mov edx, dword [esp + 0x28]
mov dword [esp + edi*4 + 0x100], esi
mov edi, 0xff
mov ecx, edx
shr edx, 0xe
and ecx, edi
mov edi, 0x3fc
and edx, edi
mov edx, dword [esp + edx + 0xcc8]
add edx, dword [esp + ecx*4 + 0x8c8]
mov ecx, dword [esp + 0x34]
xor edx, esi
mov esi, 0xff
mov dword [esp + ebx*4 + 0x100], edx
mov ecx, dword [esp + ecx*4 + 0xc8]
rol ecx, 9
xor eax, ecx
mov ecx, dword [esp + 0x10]
add ecx, eax
mov dword [esp + ebx*4 + 0x104], ecx
mov edx, ecx
mov ecx, dword [esp + 0x20]
mov eax, ecx
shr ecx, 0xe
and ecx, edi
and eax, esi
mov ecx, dword [esp + ecx + 0xcc8]
add ecx, dword [esp + eax*4 + 0x8c8]
xor ecx, edx
mov dword [esp + ebx*4 + 0x104], ecx
jmp 0x477c63
mov eax, dword [esp]
mov edi, dword [esp + ebx*4 + 0x8fc]
mov edx, dword [esp + eax*4 + 0x8d0]
mov ecx, dword [esp + eax*4 + 0x8cc]
rol edi, 0xa
mov dword [esp + 8], edx
mov edx, dword [esp + ebx*4 + 0x8e0]
mov esi, ecx
rol esi, 0x17
xor edi, esi
mov esi, dword [esp + 4]
rol edx, 8
add edx, dword [esp + eax*4 + 0x8c8]
add edx, edi
mov dword [esp + eax*4 + 0x8c8], edx
mov ebx, dword [esp + esi*4 + 0x8d8]
movzx esi, bl
shr ebx, 0xe
and ebx, 0x3fc
mov edi, dword [esp + ebx + 0x4c8]
mov ebx, dword [esp + 4]
add edi, dword [esp + esi*4 + 0xc8]
xor edi, edx
mov dword [esp + eax*4 + 0x8c8], edi
mov dword [esp + 0x14], edi
mov edi, dword [esp + 8]
mov esi, dword [esp + ebx*4 + 0x900]
mov edx, edi
rol edx, 0x17
rol esi, 0xa
xor esi, edx
mov edx, dword [esp + ebx*4 + 0x8e4]
rol edx, 8
add edx, ecx
add edx, esi
cmp eax, 0x1ff
mov dword [esp + eax*4 + 0x8cc], edx
je 0x477e8c
mov ecx, dword [esp + ebx*4 + 0x8dc]
mov eax, dword [esp]
movzx esi, cl
shr ecx, 0xe
mov esi, dword [esp + esi*4 + 0xc8]
and ecx, 0x3fc
add esi, dword [esp + ecx + 0x4c8]
xor esi, edx
mov dword [esp + eax*4 + 0x8cc], esi
mov dword [esp + 0x10], esi
mov ecx, dword [esp + eax*4 + 0x8d4]
mov esi, dword [esp + ebx*4 + 0x904]
mov edx, ecx
rol esi, 0xa
rol edx, 0x17
xor esi, edx
mov edx, dword [esp + ebx*4 + 0x8e8]
rol edx, 8
add edx, edi
add edx, esi
cmp eax, 0x1fe
mov dword [esp + eax*4 + 0x8d0], edx
jae 0x477ea0
mov eax, dword [esp + ebx*4 + 0x8e0]
mov edi, dword [esp]
movzx esi, al
shr eax, 0xe
mov esi, dword [esp + esi*4 + 0xc8]
and eax, 0x3fc
add esi, dword [esp + eax + 0x4c8]
xor esi, edx
mov dword [esp + edi*4 + 0x8d0], esi
mov dword [esp + 8], esi
mov esi, dword [esp + 0x14]
mov eax, dword [esp + edi*4 + 0x8d8]
rol esi, 0xa
mov edx, eax
rol edx, 0x17
xor esi, edx
mov edx, dword [esp + ebx*4 + 0x8ec]
rol edx, 8
add edx, ecx
add edx, esi
cmp edi, 0x1fd
mov dword [esp + edi*4 + 0x8d4], edx
je 0x477eb8
mov ecx, dword [esp + ebx*4 + 0x8e4]
mov edi, dword [esp]
movzx esi, cl
shr ecx, 0xe
mov esi, dword [esp + esi*4 + 0xc8]
and ecx, 0x3fc
add esi, dword [esp + ecx + 0x4c8]
xor esi, edx
mov dword [esp + edi*4 + 0x8d4], esi
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + edi*4 + 0x8dc]
rol esi, 0xa
mov edx, ecx
rol edx, 0x17
xor esi, edx
mov edx, dword [esp + ebx*4 + 0x8f0]
rol edx, 8
add edx, eax
add edx, esi
cmp edi, 0x1fc
mov dword [esp + edi*4 + 0x8d8], edx
jae 0x477ed0
mov eax, dword [esp + ebx*4 + 0x8e8]
mov edi, dword [esp]
movzx esi, al
shr eax, 0xe
mov esi, dword [esp + esi*4 + 0xc8]
and eax, 0x3fc
add esi, dword [esp + eax + 0x4c8]
xor esi, edx
mov dword [esp + edi*4 + 0x8d8], esi
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 8]
mov eax, dword [esp + edi*4 + 0x8e0]
rol esi, 0xa
mov edx, eax
rol edx, 0x17
xor esi, edx
mov edx, dword [esp + ebx*4 + 0x8f4]
rol edx, 8
add edx, ecx
add edx, esi
cmp edi, 0x1fb
mov dword [esp + edi*4 + 0x8dc], edx
je 0x477ee8
mov ecx, dword [esp + ebx*4 + 0x8ec]
mov edi, dword [esp]
movzx esi, cl
shr ecx, 0xe
mov esi, dword [esp + esi*4 + 0xc8]
and ecx, 0x3fc
add esi, dword [esp + ecx + 0x4c8]
xor esi, edx
mov dword [esp + edi*4 + 0x8dc], esi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + edi*4 + 0x8e4]
rol esi, 0xa
mov edx, ecx
rol edx, 0x17
xor esi, edx
mov edx, dword [esp + ebx*4 + 0x8f8]
rol edx, 8
add edx, eax
add edx, esi
cmp edi, 0x1fa
mov dword [esp + edi*4 + 0x8e0], edx
jae 0x477f00
mov eax, dword [esp + ebx*4 + 0x8f0]
mov ebx, dword [esp]
movzx esi, al
mov edi, eax
mov eax, dword [esp + esi*4 + 0xc8]
shr edi, 0xe
and edi, 0x3fc
add eax, dword [esp + edi + 0x4c8]
mov edi, dword [esp + 0x1c]
xor eax, edx
rol edi, 0xa
mov dword [esp + ebx*4 + 0x8e0], eax
mov edx, dword [esp + ebx*4 + 0x8e8]
mov esi, edx
rol esi, 0x17
xor edi, esi
mov esi, dword [esp + 4]
mov esi, dword [esp + esi*4 + 0x8fc]
rol esi, 8
add esi, ecx
add esi, edi
cmp ebx, 0x1f9
mov dword [esp + ebx*4 + 0x8e4], esi
je 0x477f18
mov ecx, dword [esp + 4]
mov ecx, dword [esp + ecx*4 + 0x8f4]
movzx edi, cl
shr ecx, 0xe
mov ebx, dword [esp + edi*4 + 0xc8]
and ecx, 0x3fc
mov edi, dword [esp + 0x20]
add ebx, dword [esp + ecx + 0x4c8]
mov ecx, dword [esp]
rol edi, 0xa
xor ebx, esi
mov dword [esp + ecx*4 + 0x8e4], ebx
mov esi, dword [esp + ecx*4 + 0x8ec]
mov dword [esp + 0xc], esi
rol esi, 0x17
xor edi, esi
mov esi, dword [esp + 4]
mov esi, dword [esp + esi*4 + 0x900]
rol esi, 8
add esi, edx
add esi, edi
cmp ecx, 0x1f8
mov dword [esp + ecx*4 + 0x8e8], esi
jae 0x477f30
mov ecx, dword [esp + 4]
rol eax, 0xa
mov edx, dword [esp + ecx*4 + 0x8f8]
mov ecx, dword [esp]
movzx edi, dl
shr edx, 0xe
mov edi, dword [esp + edi*4 + 0xc8]
and edx, 0x3fc
add edi, dword [esp + edx + 0x4c8]
xor edi, esi
mov dword [esp + ecx*4 + 0x8e8], edi
mov esi, dword [esp + ecx*4 + 0x8f0]
mov edx, esi
rol edx, 0x17
xor eax, edx
mov edx, dword [esp + 4]
mov edx, dword [esp + edx*4 + 0x904]
rol edx, 8
add edx, dword [esp + 0xc]
add edx, eax
cmp ecx, 0x1f7
mov dword [esp + ecx*4 + 0x8ec], edx
je 0x477f48
mov eax, dword [esp + 4]
mov eax, dword [esp + eax*4 + 0x8fc]
movzx ecx, al
shr eax, 0xe
mov dword [esp + 0xc], ecx
mov ecx, ebx
and eax, 0x3fc
mov ebx, dword [esp + 0xc]
rol ecx, 0xa
mov ebx, dword [esp + ebx*4 + 0xc8]
add ebx, dword [esp + eax + 0x4c8]
mov eax, dword [esp]
xor ebx, edx
mov dword [esp + eax*4 + 0x8ec], ebx
mov dword [esp + 0xc], ebx
mov ebx, eax
mov edx, dword [esp + eax*4 + 0x8f4]
mov eax, edx
rol eax, 0x17
xor ecx, eax
mov eax, dword [esp + 0x14]
rol eax, 8
add esi, eax
add esi, ecx
cmp ebx, 0x1f6
mov dword [esp + ebx*4 + 0x8f0], esi
jae 0x477f5d
mov eax, dword [esp + 4]
rol edi, 0xa
mov eax, dword [esp + eax*4 + 0x900]
movzx ebx, al
shr eax, 0xe
mov ecx, dword [esp + ebx*4 + 0xc8]
and eax, 0x3fc
mov ebx, dword [esp]
add ecx, dword [esp + eax + 0x4c8]
xor ecx, esi
mov dword [esp + ebx*4 + 0x8f0], ecx
mov esi, dword [esp + ebx*4 + 0x8f8]
mov eax, esi
rol eax, 0x17
xor edi, eax
mov eax, dword [esp + 0x10]
rol eax, 8
add edx, eax
add edx, edi
cmp ebx, 0x1f5
mov dword [esp + ebx*4 + 0x8f4], edx
je 0x477f72
mov eax, dword [esp + 4]
mov eax, dword [esp + eax*4 + 0x904]
movzx edi, al
shr eax, 0xe
mov ebx, dword [esp + edi*4 + 0xc8]
and eax, 0x3fc
add ebx, dword [esp + eax + 0x4c8]
mov eax, dword [esp]
xor ebx, edx
cmp eax, 0x1f4
mov dword [esp + eax*4 + 0x8f4], ebx
jae 0x477f87
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
rol eax, 8
rol edx, 0xa
add esi, eax
mov eax, dword [esp]
mov eax, dword [esp + eax*4 + 0x8fc]
mov dword [esp + 4], eax
rol eax, 0x17
xor edx, eax
mov eax, dword [esp + 0x14]
add edx, esi
movzx esi, al
mov edi, eax
mov eax, dword [esp]
mov esi, dword [esp + esi*4 + 0xc8]
shr edi, 0xe
and edi, 0x3fc
add esi, dword [esp + edi + 0x4c8]
xor esi, edx
cmp eax, 0x1f3
mov dword [esp + eax*4 + 0x8f8], esi
je 0x477f9c
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 4]
rol ecx, 0xa
rol eax, 8
add edx, eax
mov eax, dword [esp]
mov eax, dword [esp + eax*4 + 0x900]
mov dword [esp + 4], eax
rol eax, 0x17
xor ecx, eax
add ecx, edx
mov edx, dword [esp + 0x10]
mov eax, edx
movzx edx, dl
mov edx, dword [esp + edx*4 + 0xc8]
shr eax, 0xe
and eax, 0x3fc
add edx, dword [esp + eax + 0x4c8]
mov eax, dword [esp]
xor edx, ecx
cmp eax, 0x1f2
mov dword [esp + eax*4 + 0x8fc], edx
jae 0x477fb1
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 4]
mov edi, dword [esp]
rol ebx, 0xa
rol eax, 8
add edx, eax
mov eax, dword [esp + edi*4 + 0x904]
mov ecx, eax
rol ecx, 0x17
xor ebx, ecx
add ebx, edx
mov edx, dword [esp + 8]
mov ecx, edx
movzx edx, dl
mov edx, dword [esp + edx*4 + 0xc8]
shr ecx, 0xe
and ecx, 0x3fc
add edx, dword [esp + ecx + 0x4c8]
xor edx, ebx
cmp edi, 0x1f1
mov dword [esp + edi*4 + 0x900], edx
je 0x477fc6
mov ecx, dword [esp + 0x20]
rol esi, 0xa
rol ecx, 8
add eax, ecx
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + ecx*4 + 0x8c8]
rol ecx, 0x17
xor esi, ecx
mov ecx, dword [esp + 0x28]
add esi, eax
mov eax, ecx
movzx ecx, cl
mov ecx, dword [esp + ecx*4 + 0xc8]
shr eax, 0xe
and eax, 0x3fc
add ecx, dword [esp + eax + 0x4c8]
mov eax, dword [esp]
xor ecx, esi
mov dword [esp + eax*4 + 0x904], ecx
mov eax, dword [esp + 0x10c8]
mov ecx, dword [esp + 0x40]
add eax, 0x10
dec ecx
mov dword [esp + 0x10c8], eax
jne 0x476fbd
xor esi, esi
mov dword [esp + 0x10c8], esi
push 0x1004
lea eax, [esp + 0xcc]
push eax
push dword [esp + 0x38]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x48]
mov dword [eax], esi
jmp 0x477e84
movzx ecx, word [esp + 0xd9]
mov dl, byte [esp + 0xdb]
mov dword [esp + 0x18], edi
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0xd4]
mov word [esp + 0x2c], cx
mov byte [esp + 0x2e], dl
jmp 0x477dd9
mov al, byte [esp + 0xc8]
mov byte [esp + 0x10d0], al
mov al, byte [esp + 0x10d0]
cmp dword [esp + 0x3c], 3
mov al, 2
mov dword [esp + 8], eax
jg 0x477daf
cmp dword [esp + 0x44], 0x12c
mov ecx, dword [esp + 0x30]
mov al, 3
mov dword [esp + 8], eax
sbb ecx, 0
jb 0x477daf
mov al, 1
mov ecx, 0x10e
mov edx, 0
mov dword [esp + 8], eax
xor eax, eax
cmp ecx, dword [esp + 0x54]
sbb edx, dword [esp + 0x58]
jb 0x477daf
cmp ecx, dword [esp + 0x4c]
mov dl, 4
mov dword [esp + 8], edx
sbb eax, dword [esp + 0x50]
jb 0x477daf
push 0
push 0x12c
mov esi, dword [esp + 0x38]
push esi
mov edi, dword [esp + 0x50]
push edi
call fcn.00538bbc
add esp, 0x10
cmp edi, 0x12c0
sbb esi, 0
jb 0x477fe3
bsr eax, eax
bsr ecx, edx
xor eax, 0x1f
xor ecx, 0x1f
add al, 0x20
test edx, edx
mov dl, 0x40
movzx eax, al
cmovne eax, ecx
mov cl, 0xbf
sub cl, al
sub dl, al
movzx eax, cl
div dl
movzx ecx, al
mov dword [0x5c9084], ecx
mov edi, dword [esp + 0x18]
mov bh, byte [esp + 0xc]
jmp 0x476ae8
mov al, 1
mov dword [esp + 8], eax
mov bh, byte [esp + 0xc]
xor ecx, ecx
mov al, byte [0x5c91e8]
inc ecx
mov edx, ecx
call fcn.0041aa20
test eax, eax
je 0x478070
mov esi, eax
mov eax, dword [esp + 8]
mov edi, 0x568fdc
mov byte [esi], al
xor eax, eax
cmp al, 5
je 0x477e04
test esi, esi
je 0x477e04
push esi
call dword [edi]
add esp, 4
cmp dword [edi + 4], 0
je 0x477e04
cmp dword [edi + 8], 9
jb 0x477df6
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x5c9128]
call sub.kernel32.dll_HeapFree
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov al, byte [0x5c91e8]
mov ecx, 0x14
mov edx, 4
call fcn.0041aa20
test eax, eax
je 0x478053
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], esi
mov byte [eax + 0x10], bh
mov edi, dword [esp + 0x48]
movzx ecx, word [esp + 0x24]
mov word [eax + 0x11], cx
mov cl, byte [esp + 0x26]
mov byte [eax + 0x13], cl
mov dword [edi + 4], 0x568b1c
mov dword [edi + 8], 0x1a
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], 0x568cb8
movzx esi, word [esp + 0x5d]
mov dl, byte [esp + 0x5f]
mov word [edi + 0x15], si
mov byte [edi + 0x17], dl
mov byte [edi + 0x14], 0
mov dword [edi], 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0x400
mov edx, 0x400
push 0x568ecc
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x202
push 0x568edc
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x203
push 0x568eec
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x204
push 0x568efc
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x205
push 0x568f0c
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x206
push 0x568f1c
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x207
push 0x568f2c
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x208
push 0x568f3c
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x209
push 0x568f4c
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x20a
push 0x568f5c
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x20b
push 0x568f6c
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x20c
push 0x568f7c
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x20d
push 0x568f8c
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x20e
push 0x568f9c
jmp 0x477fd9
mov ecx, dword [esp]
mov edx, 0x400
add ecx, 0x20f
push 0x568fac
call fcn.00444440
add esp, 4
ud2
mov dword [esp + 0x10d0], 0x51800000
mov dword [esp + 0x10d4], 0x2e323840
mov dword [esp + 0x10d8], 0x2627292b
mov dword [esp + 0x10dc], 0x21222324
movzx eax, byte [esp + eax + 0x10d0]
mov dword [0x5c9084], eax
test eax, eax
mov edi, dword [esp + 0x18]
mov bh, byte [esp + 0xc]
jne 0x476ae8
mov ecx, 0x569136
mov edx, 0x1c
push 0x569154
jmp 0x47804c
mov ecx, str.assertion_failed:_self.counter1024___16__0_home_vi_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rand_hc_0.1.0_src_hc128.rsd
mov edx, 0x2c
push 0x568fbc
call fcn.00445340
jmp 0x477fde
mov ecx, 4
mov edx, 0x14
jmp 0x478075
mov ecx, 0x5a387e
mov edx, 0x28
push 0x568b38
jmp 0x47804c
xor ecx, ecx
inc ecx
mov edx, ecx
call fcn.0041b1c0
ud2