Function at 0x4af950
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xd0
mov edi, dword [esp + 0xe4]
mov ebp, dword [edi]
mov eax, dword [edi + 4]
lea ecx, [edi + 0xfa14]
cmp eax, 0xa
mov dword [esp + 0x34], ecx
jne 0x4afc8f
lea eax, [edi + 0xfa18]
mov dword [esp + 0xc8], eax
lea eax, [edi + 0xfa1c]
mov dword [esp + 0xc4], eax
lea eax, [edi + 0xfa20]
mov dword [esp + 0xc0], eax
lea eax, [edi + 0xfa24]
mov dword [esp + 0xbc], eax
lea eax, [edi + 0xfa28]
mov dword [esp + 0xb8], eax
lea eax, [edi + 0xfa2c]
mov dword [esp + 0xb4], eax
lea eax, [edi + 0xfa30]
mov dword [esp + 0xb0], eax
pxor xmm0, xmm0
movdqu xmmword [ecx + 0x50], xmm0
movdqu xmmword [ecx + 0x40], xmm0
movdqu xmmword [ecx + 0x30], xmm0
movdqu xmmword [ecx + 0x20], xmm0
movdqu xmmword [ecx + 0x10], xmm0
movdqu xmmword [ecx], xmm0
mov dword [edi + 4], 0xa
lea eax, [edi + 0xfa34]
mov dword [esp + 0xac], eax
lea eax, [edi + 0xfa38]
mov dword [esp + 0xa8], eax
lea eax, [edi + 0xfa3c]
mov dword [esp + 0xa4], eax
lea eax, [edi + 0xfa40]
mov dword [esp + 0xa0], eax
lea eax, [edi + 0xfa44]
mov dword [esp + 0x9c], eax
lea eax, [edi + 0xfa48]
mov dword [esp + 0x98], eax
lea eax, [edi + 0xfa4c]
mov dword [esp + 0x90], eax
lea eax, [edi + 0xfa50]
mov dword [esp + 0x94], eax
lea eax, [edi + 0xfa54]
mov dword [esp + 0x88], eax
lea eax, [edi + 0xfa58]
mov dword [esp + 0x8c], eax
lea eax, [edi + 0xfa5c]
mov dword [esp + 0x80], eax
lea eax, [edi + 0xfa60]
mov dword [esp + 0x84], eax
lea eax, [edi + 0xfa64]
mov dword [esp + 0x7c], eax
lea eax, [edi + 0xfa68]
mov dword [esp + 0x78], eax
lea eax, [edi + 0xfa6c]
mov dword [esp + 0x74], eax
lea eax, [edi + 0xfa70]
mov dword [esp + 0x70], eax
mov ecx, dword [edi + 0x20]
cmp ecx, 7
jle 0x4aff0d
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
mov dword [edi + 0x20], ecx
mov eax, 0xfffffffb
mov dword [esp], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x38], 0
mov dword [esp + 4], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 8], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x68], 0
cmp dl, 0x42
jne 0x4b2de9
mov dword [edi + 4], 0xb
cmp ecx, 8
jl 0x4afec3
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
mov dword [edi + 0x20], ecx
mov eax, 0xfffffffb
cmp dl, 0x5a
jne 0x4b2de9
mov dword [edi + 4], 0xc
cmp ecx, 8
jl 0x4b0053
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
mov dword [edi + 0x20], ecx
mov eax, 0xfffffffb
cmp dl, 0x68
jne 0x4b2de9
mov dword [edi + 4], 0xd
cmp ecx, 8
jl 0x4b00b0
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
movzx edx, dl
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], edx
lea ecx, [edx - 0x3a]
mov eax, 0xfffffffb
cmp ecx, 0xfffffff7
jb 0x4b2de9
add edx, 0xffffffd0
mov dword [edi + 0x24], edx
cmp byte [edi + 0x28], 0
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x2c]
je 0x4b0338
imul edx, edx, 0x30d40
push 1
push edx
push ecx
call eax
add esp, 0xc
mov dword [edi + 0xc50], eax
imul eax, dword [edi + 0x24], 0x186a0
sar eax, 1
push 1
push eax
push dword [ebp + 0x2c]
call dword [ebp + 0x24]
add esp, 0xc
mov ecx, eax
mov dword [edi + 0xc54], eax
cmp dword [edi + 0xc50], 0
mov eax, 0xfffffffd
je 0x4b2de9
test ecx, ecx
jne case.0x4afea9.14
jmp 0x4b2de9
mov edx, dword [edi + 0xfa14]
mov dword [esp], edx
mov edx, dword [edi + 0xfa18]
mov dword [esp + 0x48], edx
lea edx, [edi + 0xfa18]
mov dword [esp + 0xc8], edx
lea edx, [edi + 0xfa1c]
mov dword [esp + 0xc4], edx
mov edx, dword [edi + 0xfa1c]
mov dword [esp + 0x18], edx
lea edx, [edi + 0xfa20]
mov dword [esp + 0xc0], edx
mov edx, dword [edi + 0xfa20]
mov dword [esp + 0x44], edx
add eax, 0xfffffff5
lea edx, [edi + 0xfa24]
mov dword [esp + 0xbc], edx
mov edx, dword [edi + 0xfa24]
mov dword [esp + 0x14], edx
lea edx, [edi + 0xfa28]
mov dword [esp + 0xb8], edx
mov edx, dword [edi + 0xfa28]
mov dword [esp + 0x38], edx
lea edx, [edi + 0xfa2c]
mov dword [esp + 0xb4], edx
mov edx, dword [edi + 0xfa2c]
mov dword [esp + 4], edx
lea edx, [edi + 0xfa30]
mov dword [esp + 0xb0], edx
mov edx, dword [edi + 0xfa30]
mov dword [esp + 0x40], edx
lea edx, [edi + 0xfa34]
mov dword [esp + 0xac], edx
mov edx, dword [edi + 0xfa34]
mov dword [esp + 0x20], edx
lea edx, [edi + 0xfa38]
mov dword [esp + 0xa8], edx
mov edx, dword [edi + 0xfa38]
mov dword [esp + 0x10], edx
lea edx, [edi + 0xfa3c]
mov dword [esp + 0xa4], edx
mov edx, dword [edi + 0xfa3c]
mov dword [esp + 0x5c], edx
lea edx, [edi + 0xfa40]
mov dword [esp + 0xa0], edx
mov edx, dword [edi + 0xfa40]
mov dword [esp + 8], edx
lea edx, [edi + 0xfa44]
mov dword [esp + 0x9c], edx
mov edx, dword [edi + 0xfa44]
mov dword [esp + 0x30], edx
lea edx, [edi + 0xfa48]
mov dword [esp + 0x98], edx
mov edx, dword [edi + 0xfa48]
mov dword [esp + 0x64], edx
lea edx, [edi + 0xfa4c]
mov dword [esp + 0x90], edx
lea edx, [edi + 0xfa50]
mov dword [esp + 0x94], edx
mov edx, dword [edi + 0xfa50]
mov dword [esp + 0x6c], edx
lea edx, [edi + 0xfa54]
mov dword [esp + 0x88], edx
lea edx, [edi + 0xfa58]
mov dword [esp + 0x8c], edx
mov edx, dword [edi + 0xfa58]
mov dword [esp + 0x1c], edx
lea edx, [edi + 0xfa5c]
mov dword [esp + 0x80], edx
lea edx, [edi + 0xfa60]
mov dword [esp + 0x84], edx
mov edx, dword [edi + 0xfa60]
mov dword [esp + 0x60], edx
lea edx, [edi + 0xfa64]
mov dword [esp + 0x7c], edx
mov edx, dword [edi + 0xfa64]
mov dword [esp + 0x58], edx
lea edx, [edi + 0xfa68]
mov dword [esp + 0x78], edx
mov edx, dword [edi + 0xfa68]
mov dword [esp + 0x54], edx
lea edx, [edi + 0xfa6c]
mov dword [esp + 0x74], edx
mov edx, dword [edi + 0xfa6c]
mov dword [esp + 0x50], edx
lea edx, [edi + 0xfa70]
mov dword [esp + 0x70], edx
mov edx, dword [edi + 0xfa70]
mov dword [esp + 0x4c], edx
mov edx, dword [edi + 0xfa4c]
mov dword [esp + 0x3c], edx
mov edx, dword [edi + 0xfa54]
mov dword [esp + 0xc], edx
mov edx, dword [edi + 0xfa5c]
mov dword [esp + 0x68], edx
cmp eax, 0x27
ja case.default.0x4afea9
jmp dword [eax*4 + 0x6b8b50]
mov ecx, dword [edi + 0x20]
mov dword [edi + 4], 0xb
cmp ecx, 8
jge 0x4afbb4
mov eax, dword [ebp + 4]
dec eax
jmp 0x4afedc
dec eax
mov esi, ecx
add esi, 0xfffffff8
jns 0x4afbb7
cmp eax, 0xffffffff
je 0x4b2de7
mov esi, dword [edi + 0x1c]
shl esi, 8
mov ebx, dword [ebp]
movzx edx, byte [ebx]
or edx, esi
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebx
mov dword [ebp], ebx
mov dword [ebp + 4], eax
inc dword [ebp + 8]
jne 0x4afed0
inc dword [ebp + 0xc]
jmp 0x4afed0
mov eax, dword [ebp + 4]
dec eax
jmp 0x4aff2c
dec eax
mov esi, ecx
add esi, 0xfffffff8
jns 0x4afacf
cmp eax, 0xffffffff
je 0x4aff59
mov esi, dword [edi + 0x1c]
shl esi, 8
mov ebx, dword [ebp]
movzx edx, byte [ebx]
or edx, esi
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebx
mov dword [ebp], ebx
mov dword [ebp + 4], eax
inc dword [ebp + 8]
jne 0x4aff20
inc dword [ebp + 0xc]
jmp 0x4aff20
mov dword [esp + 0x6c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x30], 0
mov dword [esp + 8], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x40], 0
mov dword [esp + 4], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x18], 0
xor eax, eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x48], 0
mov dword [esp], 0
jmp 0x4b2de9
push 0xfa1
call fcn.00402750
add esp, 4
push 0xfa2
call fcn.00402750
add esp, 4
xor eax, eax
jmp 0x4b2de9
mov ecx, dword [edi + 0x20]
mov dword [edi + 4], 0xc
cmp ecx, 8
jge 0x4afbdd
mov eax, dword [ebp + 4]
dec eax
jmp 0x4b006c
dec eax
mov esi, ecx
add esi, 0xfffffff8
jns 0x4afbe0
cmp eax, 0xffffffff
je 0x4b2de7
mov esi, dword [edi + 0x1c]
shl esi, 8
mov ebx, dword [ebp]
movzx edx, byte [ebx]
or edx, esi
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebx
mov dword [ebp], ebx
mov dword [ebp + 4], eax
inc dword [ebp + 8]
jne 0x4b0060
inc dword [ebp + 0xc]
jmp 0x4b0060
mov ecx, dword [edi + 0x20]
mov dword [edi + 4], 0xd
cmp ecx, 8
jge 0x4afc06
mov eax, dword [ebp + 4]
dec eax
jmp 0x4b00cc
dec eax
mov esi, ecx
add esi, 0xfffffff8
jns 0x4afc09
cmp eax, 0xffffffff
je 0x4b2de7
mov esi, dword [edi + 0x1c]
shl esi, 8
mov ebx, dword [ebp]
movzx edx, byte [ebx]
or edx, esi
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebx
mov dword [ebp], ebx
mov dword [ebp + 4], eax
inc dword [ebp + 8]
jne 0x4b00c0
inc dword [ebp + 0xc]
jmp 0x4b00c0
mov ecx, dword [edi + 0x20]
jmp 0x4b038c
mov ecx, dword [edi + 0x20]
jmp 0x4b03b5
mov ecx, dword [edi + 0x20]
jmp 0x4b03de
mov ecx, dword [edi + 0x20]
jmp 0x4b0407
mov ecx, dword [edi + 0x20]
jmp 0x4b0430
mov ecx, dword [edi + 0x20]
jmp 0x4b04ba
mov ecx, dword [edi + 0x20]
jmp 0x4b04e9
mov ecx, dword [edi + 0x20]
jmp 0x4b0518
mov ecx, dword [edi + 0x20]
jmp 0x4b0547
mov ecx, dword [edi + 0x20]
jmp 0x4b056b
mov ecx, dword [edi + 0x20]
jmp 0x4b0594
mov ecx, dword [edi + 0x20]
jmp 0x4b05bd
mov edx, dword [esp]
jmp 0x4b0e1a
mov edx, dword [esp]
jmp 0x4b11f7
mov ecx, dword [edi + 0x20]
mov dword [edi + 4], 0x1f
cmp ecx, 0xf
jl 0x4b02c9
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x2c], eax
add ecx, 0xfffffff1
mov edx, dword [esp + 0x2c]
shr edx, cl
xor eax, eax
mov dword [edi + 0x20], ecx
and edx, 0x7fff
mov dword [esp + 0x2c], edx
jne 0x4b1389
mov dword [esp + 0x38], 0
mov eax, 0xfffffffc
jmp 0x4b2de9
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
jmp 0x4b139e
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x18]
jmp 0x4b16f9
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x18]
jmp 0x4b0f28
mov eax, dword [edi + 0x20]
mov ebp, dword [esp + 0x18]
jmp 0x4b0f4e
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], ecx
mov dword [edi + 4], 0x24
mov edx, dword [edi + 0x20]
mov dword [esp + 0xc], eax
cmp edx, eax
jge 0x4b0312
mov ecx, dword [edi]
mov esi, dword [ecx + 4]
dec esi
jmp 0x4b0223
dec esi
cmp edx, dword [esp + 0xc]
jge 0x4b0315
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [ecx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add edx, 8
mov dword [edi + 0x20], edx
inc ebp
mov dword [ecx], ebp
mov dword [ecx + 4], esi
inc dword [ecx + 8]
jne 0x4b0218
inc dword [ecx + 0xc]
jmp 0x4b0218
mov edx, dword [edi + 0x20]
mov ebx, dword [esp + 0xc]
jmp 0x4b10b9
mov eax, dword [esp + 0xc]
jmp 0x4b2d87
mov edx, dword [edi + 0x20]
jmp 0x4b1164
mov eax, dword [esp + 0xc]
jmp 0x4b1f0e
mov edx, dword [edi + 0x20]
jmp 0x4b103f
mov ecx, dword [edi + 0x20]
jmp 0x4b072c
mov ecx, dword [edi + 0x20]
jmp 0x4b0755
mov ecx, dword [edi + 0x20]
jmp 0x4b077e
mov ecx, dword [edi + 0x20]
jmp 0x4b07a7
mov ecx, dword [edi + 0x20]
jmp 0x4b07d0
mov ecx, dword [edi + 0x20]
jmp 0x4b0803
mov ecx, dword [edi + 0x20]
jmp 0x4b0832
mov ecx, dword [edi + 0x20]
jmp 0x4b0861
mov ecx, dword [edi + 0x20]
jmp 0x4b0890
mov eax, dword [edi]
mov esi, dword [eax + 4]
dec esi
jmp 0x4b02de
dec esi
lea ebx, [ecx - 8]
cmp ebx, 6
jg 0x4b0187
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx edx, byte [ebp]
or edx, ebx
mov dword [esp + 0x2c], edx
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], esi
inc dword [eax + 8]
jne 0x4b02d1
inc dword [eax + 0xc]
jmp 0x4b02d1
mov eax, dword [edi + 0x1c]
mov ebx, dword [esp + 0xc]
sub edx, ebx
mov ecx, edx
shr eax, cl
mov esi, 0xffffffff
mov ecx, ebx
shl esi, cl
not esi
and esi, eax
mov dword [esp + 0x1c], esi
mov dword [edi + 0x20], edx
jmp 0x4b10ea
imul edx, edx, 0x61a80
push 1
push edx
push ecx
call eax
add esp, 0xc
mov dword [edi + 0xc4c], eax
test eax, eax
je 0x4b0e10
mov dword [edi + 4], 0xe
mov ecx, dword [edi + 0x20]
cmp ecx, 8
jl 0x4b0a9c
mov eax, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr eax, cl
mov dword [edi + 0x20], ecx
cmp al, 0x17
je 0x4b072c
movzx edx, al
mov eax, 0xfffffffc
cmp edx, 0x31
jne 0x4b2de9
mov dword [edi + 4], 0xf
cmp ecx, 8
jl 0x4b0d88
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
mov dword [edi + 0x20], ecx
mov eax, 0xfffffffc
cmp dl, 0x41
jne 0x4b2de9
mov dword [edi + 4], 0x10
cmp ecx, 8
jl 0x4b0d00
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
mov dword [edi + 0x20], ecx
mov eax, 0xfffffffc
cmp dl, 0x59
jne 0x4b2de9
mov dword [edi + 4], 0x11
cmp ecx, 8
jl 0x4b0c78
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
mov dword [edi + 0x20], ecx
mov eax, 0xfffffffc
cmp dl, 0x26
jne 0x4b2de9
mov dword [edi + 4], 0x12
cmp ecx, 8
jl 0x4b0bf0
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
mov dword [edi + 0x20], ecx
mov eax, 0xfffffffc
cmp dl, 0x53
jne 0x4b2de9
mov dword [edi + 4], 0x13
cmp ecx, 8
jl 0x4b0b68
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
mov dword [edi + 0x20], ecx
mov eax, 0xfffffffc
cmp dl, 0x59
jne 0x4b2de9
inc dword [edi + 0x2c]
cmp dword [edi + 0x30], 2
jl 0x4b047e
push 2
call dword [0x71401c]
add esp, 4
push dword [edi + 0x2c]
push str._n______d:_huffmtf
push eax
call fcn.004b3070
add esp, 0xc
mov dword [edi + 0xc58], 0
mov dword [edi + 4], 0x14
mov ecx, dword [edi + 0x20]
cmp ecx, 8
jl 0x4b0ae0
mov eax, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr eax, cl
mov dword [edi + 0x20], ecx
mov edx, dword [edi + 0xc58]
shl edx, 8
movzx eax, al
or eax, edx
mov dword [edi + 0xc58], eax
mov dword [edi + 4], 0x15
cmp ecx, 8
jl 0x4b09fd
mov eax, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr eax, cl
mov dword [edi + 0x20], ecx
mov edx, dword [edi + 0xc58]
shl edx, 8
movzx eax, al
or eax, edx
mov dword [edi + 0xc58], eax
mov dword [edi + 4], 0x16
cmp ecx, 8
jl 0x4b0918
mov eax, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr eax, cl
mov dword [edi + 0x20], ecx
mov edx, dword [edi + 0xc58]
shl edx, 8
movzx eax, al
or eax, edx
mov dword [edi + 0xc58], eax
mov dword [edi + 4], 0x17
cmp ecx, 8
jl 0x4b06dc
mov eax, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr eax, cl
mov dword [edi + 0x20], ecx
mov edx, dword [edi + 0xc58]
shl edx, 8
movzx eax, al
or eax, edx
mov dword [edi + 0xc58], eax
mov dword [edi + 4], 0x18
test ecx, ecx
jle 0x4b09ac
mov esi, dword [edi + 0x1c]
dec ecx
mov dword [edi + 0x20], ecx
bt esi, ecx
setb byte [edi + 0x10]
mov dword [edi + 0x34], 0
mov dword [edi + 4], 0x19
cmp ecx, 8
jl 0x4b068c
mov eax, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr eax, cl
mov dword [edi + 0x20], ecx
mov edx, dword [edi + 0x34]
shl edx, 8
movzx eax, al
or eax, edx
mov dword [edi + 0x34], eax
mov dword [edi + 4], 0x1a
cmp ecx, 8
jl 0x4b0648
mov eax, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr eax, cl
mov dword [edi + 0x20], ecx
mov edx, dword [edi + 0x34]
shl edx, 8
movzx eax, al
or eax, edx
mov dword [edi + 0x34], eax
mov dword [edi + 4], 0x1b
cmp ecx, 8
jl 0x4b0606
mov eax, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr eax, cl
mov dword [edi + 0x20], ecx
mov ecx, dword [edi + 0x34]
shl ecx, 8
movzx edx, al
or edx, ecx
mov dword [edi + 0x34], edx
mov eax, 0xfffffffc
js 0x4b2de9
imul esi, dword [edi + 0x24], 0x186a0
or esi, 0xa
xor ecx, ecx
cmp edx, esi
jg 0x4b2de9
jmp 0x4b0e45
mov edx, dword [edi]
mov esi, dword [edx + 4]
dec esi
jmp 0x4b0618
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b05cc
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [edx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [edx], ebp
mov dword [edx + 4], esi
inc dword [edx + 8]
jne 0x4b0610
inc dword [edx + 0xc]
jmp 0x4b0610
mov edx, dword [edi]
mov esi, dword [edx + 4]
dec esi
jmp 0x4b065c
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b05a7
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [edx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [edx], ebp
mov dword [edx + 4], esi
inc dword [edx + 8]
jne 0x4b0650
inc dword [edx + 0xc]
jmp 0x4b0650
mov edx, dword [edi]
mov esi, dword [edx + 4]
dec esi
jmp 0x4b06ac
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b057e
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [edx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [edx], ebp
mov dword [edx + 4], esi
inc dword [edx + 8]
jne 0x4b06a0
inc dword [edx + 0xc]
jmp 0x4b06a0
mov edx, dword [edi]
mov esi, dword [edx + 4]
dec esi
jmp 0x4b06fc
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b052b
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [edx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [edx], ebp
mov dword [edx + 4], esi
inc dword [edx + 8]
jne 0x4b06f0
inc dword [edx + 0xc]
jmp 0x4b06f0
mov dword [edi + 4], 0x2a
cmp ecx, 8
jl 0x4b0dcc
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
mov dword [edi + 0x20], ecx
mov eax, 0xfffffffc
cmp dl, 0x72
jne 0x4b2de9
mov dword [edi + 4], 0x2b
cmp ecx, 8
jl 0x4b0d44
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
mov dword [edi + 0x20], ecx
mov eax, 0xfffffffc
cmp dl, 0x45
jne 0x4b2de9
mov dword [edi + 4], 0x2c
cmp ecx, 8
jl 0x4b0cbc
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
mov dword [edi + 0x20], ecx
mov eax, 0xfffffffc
cmp dl, 0x38
jne 0x4b2de9
mov dword [edi + 4], 0x2d
cmp ecx, 8
jl 0x4b0c34
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
mov dword [edi + 0x20], ecx
mov eax, 0xfffffffc
cmp dl, 0x50
jne 0x4b2de9
mov dword [edi + 4], 0x2e
cmp ecx, 8
jl 0x4b0bac
mov edx, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr edx, cl
mov dword [edi + 0x20], ecx
mov eax, 0xfffffffc
cmp dl, 0x90
jne 0x4b2de9
mov dword [edi + 0xc5c], 0
mov dword [edi + 4], 0x2f
cmp ecx, 8
jl 0x4b0b24
mov eax, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr eax, cl
mov dword [edi + 0x20], ecx
mov edx, dword [edi + 0xc5c]
shl edx, 8
movzx eax, al
or eax, edx
mov dword [edi + 0xc5c], eax
mov dword [edi + 4], 0x30
cmp ecx, 8
jl 0x4b0a4c
mov eax, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr eax, cl
mov dword [edi + 0x20], ecx
mov edx, dword [edi + 0xc5c]
shl edx, 8
movzx eax, al
or eax, edx
mov dword [edi + 0xc5c], eax
mov dword [edi + 4], 0x31
cmp ecx, 8
jl 0x4b095c
mov eax, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr eax, cl
mov dword [edi + 0x20], ecx
mov edx, dword [edi + 0xc5c]
shl edx, 8
movzx eax, al
or eax, edx
mov dword [edi + 0xc5c], eax
mov dword [edi + 4], 0x32
cmp ecx, 8
jl 0x4b08cc
mov eax, dword [edi + 0x1c]
add ecx, 0xfffffff8
shr eax, cl
mov dword [edi + 0x20], ecx
mov ecx, dword [edi + 0xc5c]
shl ecx, 8
movzx eax, al
or eax, ecx
mov dword [edi + 0xc5c], eax
mov dword [edi + 4], 1
mov eax, 4
jmp 0x4b2de9
mov edx, dword [edi]
mov esi, dword [edx + 4]
dec esi
jmp 0x4b08e8
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b089f
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [edx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [edx], ebp
mov dword [edx + 4], esi
inc dword [edx + 8]
jne 0x4b08e0
inc dword [edx + 0xc]
jmp 0x4b08e0
mov edx, dword [edi]
mov esi, dword [edx + 4]
dec esi
jmp 0x4b092c
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b04fc
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [edx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [edx], ebp
mov dword [edx + 4], esi
inc dword [edx + 8]
jne 0x4b0920
inc dword [edx + 0xc]
jmp 0x4b0920
mov edx, dword [edi]
mov esi, dword [edx + 4]
dec esi
jmp 0x4b097c
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b0874
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [edx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [edx], ebp
mov dword [edx + 4], esi
inc dword [edx + 8]
jne 0x4b0970
inc dword [edx + 0xc]
jmp 0x4b0970
mov eax, dword [edi]
mov edx, dword [eax + 4]
dec edx
jmp 0x4b09cd
dec edx
lea ebx, [ecx - 8]
cmp ebx, 0xfffffff8
jg 0x4b0559
cmp edx, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx esi, byte [ebp]
or esi, ebx
mov dword [edi + 0x1c], esi
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], edx
inc dword [eax + 8]
jne 0x4b09c0
inc dword [eax + 0xc]
jmp 0x4b09c0
mov edx, dword [edi]
mov esi, dword [edx + 4]
dec esi
jmp 0x4b0a1c
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b04cd
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [edx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [edx], ebp
mov dword [edx + 4], esi
inc dword [edx + 8]
jne 0x4b0a10
inc dword [edx + 0xc]
jmp 0x4b0a10
mov edx, dword [edi]
mov esi, dword [edx + 4]
dec esi
jmp 0x4b0a6c
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b0845
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [edx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [edx], ebp
mov dword [edx + 4], esi
inc dword [edx + 8]
jne 0x4b0a60
inc dword [edx + 0xc]
jmp 0x4b0a60
mov edx, dword [edi]
mov esi, dword [edx + 4]
dec esi
jmp 0x4b0ab0
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b036b
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [edx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [edx], ebp
mov dword [edx + 4], esi
inc dword [edx + 8]
jne 0x4b0aa4
inc dword [edx + 0xc]
jmp 0x4b0aa4
mov edx, dword [edi]
mov esi, dword [edx + 4]
dec esi
jmp 0x4b0af4
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b049e
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [edx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [edx], ebp
mov dword [edx + 4], esi
inc dword [edx + 8]
jne 0x4b0ae8
inc dword [edx + 0xc]
jmp 0x4b0ae8
mov edx, dword [edi]
mov esi, dword [edx + 4]
dec esi
jmp 0x4b0b38
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b0816
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [edx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [edx], ebp
mov dword [edx + 4], esi
inc dword [edx + 8]
jne 0x4b0b2c
inc dword [edx + 0xc]
jmp 0x4b0b2c
mov eax, dword [edi]
mov esi, dword [eax + 4]
dec esi
jmp 0x4b0b7c
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b0443
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx edx, byte [ebp]
or edx, ebx
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], esi
inc dword [eax + 8]
jne 0x4b0b70
inc dword [eax + 0xc]
jmp 0x4b0b70
mov eax, dword [edi]
mov esi, dword [eax + 4]
dec esi
jmp 0x4b0bc0
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b07e3
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx edx, byte [ebp]
or edx, ebx
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], esi
inc dword [eax + 8]
jne 0x4b0bb4
inc dword [eax + 0xc]
jmp 0x4b0bb4
mov eax, dword [edi]
mov esi, dword [eax + 4]
dec esi
jmp 0x4b0c04
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b041a
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx edx, byte [ebp]
or edx, ebx
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], esi
inc dword [eax + 8]
jne 0x4b0bf8
inc dword [eax + 0xc]
jmp 0x4b0bf8
mov eax, dword [edi]
mov esi, dword [eax + 4]
dec esi
jmp 0x4b0c48
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b07ba
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx edx, byte [ebp]
or edx, ebx
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], esi
inc dword [eax + 8]
jne 0x4b0c3c
inc dword [eax + 0xc]
jmp 0x4b0c3c
mov eax, dword [edi]
mov esi, dword [eax + 4]
dec esi
jmp 0x4b0c8c
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b03f1
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx edx, byte [ebp]
or edx, ebx
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], esi
inc dword [eax + 8]
jne 0x4b0c80
inc dword [eax + 0xc]
jmp 0x4b0c80
mov eax, dword [edi]
mov esi, dword [eax + 4]
dec esi
jmp 0x4b0cd0
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b0791
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx edx, byte [ebp]
or edx, ebx
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], esi
inc dword [eax + 8]
jne 0x4b0cc4
inc dword [eax + 0xc]
jmp 0x4b0cc4
mov eax, dword [edi]
mov esi, dword [eax + 4]
dec esi
jmp 0x4b0d14
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b03c8
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx edx, byte [ebp]
or edx, ebx
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], esi
inc dword [eax + 8]
jne 0x4b0d08
inc dword [eax + 0xc]
jmp 0x4b0d08
mov eax, dword [edi]
mov esi, dword [eax + 4]
dec esi
jmp 0x4b0d58
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b0768
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx edx, byte [ebp]
or edx, ebx
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], esi
inc dword [eax + 8]
jne 0x4b0d4c
inc dword [eax + 0xc]
jmp 0x4b0d4c
mov eax, dword [edi]
mov esi, dword [eax + 4]
dec esi
jmp 0x4b0d9c
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b039f
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx edx, byte [ebp]
or edx, ebx
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], esi
inc dword [eax + 8]
jne 0x4b0d90
inc dword [eax + 0xc]
jmp 0x4b0d90
mov eax, dword [edi]
mov esi, dword [eax + 4]
dec esi
jmp 0x4b0de0
dec esi
mov ebx, ecx
add ebx, 0xfffffff8
jns 0x4b073f
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx edx, byte [ebp]
or edx, ebx
mov dword [edi + 0x1c], edx
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], esi
inc dword [eax + 8]
jne 0x4b0dd4
inc dword [eax + 0xc]
jmp 0x4b0dd4
mov eax, 0xfffffffd
jmp 0x4b2de9
mov dword [edi + 4], 0x1c
mov eax, dword [edi + 0x20]
test eax, eax
mov dword [esp + 0x34], ecx
mov dword [esp], edx
jle 0x4b0e52
mov esi, dword [edi + 0x1c]
dec eax
mov dword [edi + 0x20], eax
bt esi, eax
mov ecx, dword [esp]
setb byte [edi + ecx + 0xd6c]
inc ecx
cmp ecx, 0x10
jge 0x4b0e99
mov edx, ecx
mov ecx, dword [esp + 0x34]
jmp 0x4b0e1a
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
dec edx
jmp 0x4b0e69
dec edx
lea ebx, [eax - 8]
cmp ebx, 0xfffffff8
jg 0x4b0e32
cmp edx, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [ecx]
movzx esi, byte [ebp]
or esi, ebx
mov dword [edi + 0x1c], esi
add eax, 8
mov dword [edi + 0x20], eax
inc ebp
mov dword [ecx], ebp
mov dword [ecx + 4], edx
inc dword [ecx + 8]
jne 0x4b0e60
inc dword [ecx + 0xc]
jmp 0x4b0e60
pxor xmm0, xmm0
movdqu xmmword [edi + 0xd5c], xmm0
movdqu xmmword [edi + 0xd4c], xmm0
movdqu xmmword [edi + 0xd3c], xmm0
movdqu xmmword [edi + 0xd2c], xmm0
movdqu xmmword [edi + 0xd1c], xmm0
movdqu xmmword [edi + 0xd0c], xmm0
movdqu xmmword [edi + 0xcfc], xmm0
movdqu xmmword [edi + 0xcec], xmm0
movdqu xmmword [edi + 0xcdc], xmm0
movdqu xmmword [edi + 0xccc], xmm0
movdqu xmmword [edi + 0xcbc], xmm0
movdqu xmmword [edi + 0xcac], xmm0
movdqu xmmword [edi + 0xc9c], xmm0
movdqu xmmword [edi + 0xc8c], xmm0
movdqu xmmword [edi + 0xc7c], xmm0
movdqu xmmword [edi + 0xc6c], xmm0
xor edx, edx
mov ecx, dword [esp + 0x34]
jmp 0x4b11d9
mov dword [edi + 4], 0x22
mov eax, dword [edi + 0x20]
test eax, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x3c], edx
jle 0x4b0f81
mov esi, dword [edi + 0x1c]
dec eax
mov dword [edi + 0x20], eax
bt esi, eax
jae 0x4b1021
mov dword [edi + 4], 0x23
test eax, eax
jle 0x4b0fcd
mov esi, dword [edi + 0x1c]
dec eax
mov dword [edi + 0x20], eax
xor ecx, ecx
bt esi, eax
sbb ecx, ecx
or ecx, 1
mov edx, dword [esp + 0x3c]
add edx, ecx
mov ecx, dword [esp + 0x14]
lea eax, [edx - 0x15]
cmp eax, 0xffffffec
jae 0x4b0f28
jmp 0x4b1741
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
dec edx
mov dword [esp + 0x18], ebp
jmp 0x4b0f9d
dec edx
lea ebx, [eax - 8]
cmp ebx, 0xfffffff8
mov ebp, dword [esp + 0x18]
jg 0x4b0f41
cmp edx, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [ecx]
movzx esi, byte [ebp]
or esi, ebx
mov dword [edi + 0x1c], esi
add eax, 8
mov dword [edi + 0x20], eax
inc ebp
mov dword [ecx], ebp
mov dword [ecx + 4], edx
inc dword [ecx + 8]
jne 0x4b0f90
inc dword [ecx + 0xc]
jmp 0x4b0f90
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
dec edx
mov dword [esp + 0x18], ebp
jmp 0x4b0ff1
dec edx
lea ebx, [eax - 8]
cmp ebx, 0xfffffff8
mov ebp, dword [esp + 0x18]
jg 0x4b0f5c
cmp edx, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [ecx]
movzx esi, byte [ebp]
or esi, ebx
mov dword [edi + 0x1c], esi
add eax, 8
mov dword [edi + 0x20], eax
inc ebp
mov dword [ecx], ebp
mov dword [ecx + 4], edx
inc dword [ecx + 8]
jne 0x4b0fe0
inc dword [ecx + 0xc]
jmp 0x4b0fe0
mov eax, ebp
shl eax, 8
lea eax, [eax + ebp*2]
add eax, edi
mov edx, dword [esp + 0x3c]
mov esi, dword [esp]
mov byte [esi + eax + 0xab60], dl
inc esi
jmp 0x4b171e
mov dword [edi + 4], 0x29
test edx, edx
jle 0x4b106d
mov esi, dword [edi + 0x1c]
dec edx
xor eax, eax
bt esi, edx
setb al
mov dword [edi + 0x20], edx
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x1c]
lea ecx, [eax + ecx*2]
mov ebx, dword [esp + 0xc]
jmp 0x4b1f86
mov eax, dword [edi]
mov ecx, dword [eax + 4]
dec ecx
jmp 0x4b1089
dec ecx
lea ebx, [edx - 8]
cmp ebx, 0xfffffff8
jg 0x4b104d
cmp ecx, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx esi, byte [ebp]
or esi, ebx
mov dword [edi + 0x1c], esi
add edx, 8
mov dword [edi + 0x20], edx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], ecx
inc dword [eax + 8]
jne 0x4b1080
inc dword [eax + 0xc]
jmp 0x4b1080
mov dword [edi + 4], 0x25
test edx, edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0xc], ebx
jle 0x4b1110
mov esi, dword [edi + 0x1c]
dec edx
xor eax, eax
bt esi, edx
setb al
mov dword [edi + 0x20], edx
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x1c]
lea ecx, [eax + ecx*2]
mov dword [esp + 0x1c], ecx
mov eax, 0xfffffffc
mov ebx, dword [esp + 0xc]
cmp ebx, 0x14
jg 0x4b2de9
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x1c]
cmp esi, dword [ecx + ebx*4]
jle 0x4b1159
inc ebx
mov ecx, dword [esp + 0x34]
jmp 0x4b10b9
mov eax, dword [edi]
mov ecx, dword [eax + 4]
dec ecx
jmp 0x4b1129
dec ecx
lea ebx, [edx - 8]
cmp ebx, 0xfffffff8
jg 0x4b10cf
cmp ecx, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx esi, byte [ebp]
or esi, ebx
mov dword [edi + 0x1c], esi
add edx, 8
mov dword [edi + 0x20], edx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], ecx
inc dword [eax + 8]
jne 0x4b1120
inc dword [eax + 0xc]
jmp 0x4b1120
mov ecx, esi
mov edx, dword [esp + 0x50]
jmp 0x4b1b7b
mov dword [edi + 4], 0x27
test edx, edx
jle 0x4b1192
mov esi, dword [edi + 0x1c]
dec edx
xor eax, eax
bt esi, edx
setb al
mov dword [edi + 0x20], edx
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x1c]
lea ecx, [eax + ecx*2]
mov ebx, dword [esp + 0xc]
jmp 0x4b2f3b
mov eax, dword [edi]
mov ecx, dword [eax + 4]
dec ecx
jmp 0x4b11a9
dec ecx
lea ebx, [edx - 8]
cmp ebx, 0xfffffff8
jg 0x4b1172
cmp ecx, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx esi, byte [ebp]
or esi, ebx
mov dword [edi + 0x1c], esi
add edx, 8
mov dword [edi + 0x20], edx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], ecx
inc dword [eax + 8]
jne 0x4b11a0
inc dword [eax + 0xc]
jmp 0x4b11a0
cmp edx, 0xf
jg 0x4b1289
xor eax, eax
cmp byte [edi + edx + 0xd6c], 0
je 0x4b123e
mov dword [esp + 0x48], eax
cmp eax, 0xf
jg 0x4b123e
mov dword [esp], edx
mov dword [esp + 0x34], ecx
mov dword [edi + 4], 0x1d
mov eax, dword [edi + 0x20]
test eax, eax
jle 0x4b1241
mov esi, dword [edi + 0x1c]
dec eax
mov dword [edi + 0x20], eax
bt esi, eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp]
jae 0x4b122e
mov eax, edx
shl eax, 4
add eax, ecx
mov byte [edi + eax + 0xc6c], 1
inc ecx
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x48], eax
cmp eax, 0xf
jle 0x4b11f7
inc edx
jmp 0x4b11d9
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
dec edx
jmp 0x4b1259
dec edx
lea ebx, [eax - 8]
cmp ebx, 0xfffffff8
jg 0x4b120f
cmp edx, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [ecx]
movzx esi, byte [ebp]
or esi, ebx
mov dword [edi + 0x1c], esi
add eax, 8
mov dword [edi + 0x20], eax
inc ebp
mov dword [ecx], ebp
mov dword [ecx + 4], edx
inc dword [ecx + 8]
jne 0x4b1250
inc dword [ecx + 0xc]
jmp 0x4b1250
mov dword [esp + 0x34], ecx
mov dword [edi + 0xc68], 0
xor eax, eax
xor ecx, ecx
mov dword [esp], edx
jmp 0x4b12ab
add ecx, 2
cmp ecx, 0x100
je 0x4b12ed
cmp byte [edi + ecx + 0xc6c], 0
je 0x4b12c9
mov byte [edi + eax + 0xd7c], cl
mov eax, dword [edi + 0xc68]
inc eax
mov dword [edi + 0xc68], eax
cmp byte [edi + ecx + 0xc6d], 0
je 0x4b12a0
mov edx, ecx
inc dl
mov byte [edi + eax + 0xd7c], dl
mov eax, dword [edi + 0xc68]
inc eax
mov dword [edi + 0xc68], eax
jmp 0x4b12a0
test eax, eax
je 0x4b137f
add eax, 2
mov dword [esp + 0x44], eax
mov dword [edi + 4], 0x1e
mov ecx, dword [edi + 0x20]
cmp ecx, 3
jl 0x4b133e
mov esi, dword [edi + 0x1c]
add ecx, 0xfffffffd
shr esi, cl
and esi, 7
mov dword [edi + 0x20], ecx
cmp esi, 7
mov dword [esp + 0x14], esi
ja 0x4b0170
mov eax, 0xfffffffc
mov edx, 0x83
bt edx, esi
jb 0x4b2de9
jmp 0x4b0170
mov eax, dword [edi]
mov edx, dword [eax + 4]
dec edx
jmp 0x4b134f
dec edx
lea ebx, [ecx - 8]
cmp ebx, 0xfffffffa
jg 0x4b130e
cmp edx, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [eax]
movzx esi, byte [ebp]
or esi, ebx
mov dword [edi + 0x1c], esi
add ecx, 8
mov dword [edi + 0x20], ecx
inc ebp
mov dword [eax], ebp
mov dword [eax + 4], edx
inc dword [eax + 8]
jne 0x4b1346
inc dword [eax + 0xc]
jmp 0x4b1346
mov eax, 0xfffffffc
jmp 0x4b2de9
cmp eax, dword [esp + 0x2c]
jge 0x4b1441
mov dword [esp + 0x48], 0
mov dword [esp], eax
mov ecx, dword [edi + 0x20]
mov dword [edi + 4], 0x20
test ecx, ecx
jle 0x4b13ce
mov ebx, dword [edi + 0x1c]
dec ecx
mov dword [edi + 0x20], ecx
bt ebx, ecx
jae 0x4b1423
mov edx, dword [esp + 0x48]
inc edx
mov eax, 0xfffffffc
mov dword [esp + 0x48], edx
cmp edx, dword [esp + 0x14]
jl 0x4b13a1
mov eax, dword [edi]
mov esi, dword [eax + 4]
dec esi
jmp 0x4b13e9
dec esi
lea edx, [ecx - 8]
cmp edx, 0xfffffff8
jg 0x4b13af
cmp esi, 0xffffffff
je 0x4b1414
mov ebp, dword [edi + 0x1c]
shl ebp, 8
mov edx, dword [eax]
movzx ebx, byte [edx]
or ebx, ebp
mov dword [edi + 0x1c], ebx
add ecx, 8
mov dword [edi + 0x20], ecx
inc edx
mov dword [eax], edx
mov dword [eax + 4], esi
inc dword [eax + 8]
jne 0x4b13e0
inc dword [eax + 0xc]
jmp 0x4b13e0
xor eax, eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x38], ecx
jmp 0x4b2de9
mov ecx, dword [esp]
cmp ecx, 0x4651
jg 0x4b1439
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x4652
mov eax, 0x4652
cmovl eax, ecx
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x14]
test edx, edx
jle 0x4b1645
xor eax, eax
mov ecx, 0
cmp edx, 8
jb 0x4b1638
lea ebx, [edx - 1]
xor eax, eax
cmp bl, 0xff
je 0x4b1632
cmp ebx, 0xff
mov edx, dword [esp + 0x14]
ja 0x4b1638
mov ebp, edi
xor ebx, ebx
mov eax, 0
cmp edx, 0x20
mov ecx, edx
jb 0x4b15ec
mov eax, ecx
and eax, 0xffffffe0
movaps xmm0, xmmword [0x6b8a00]
movups xmmword [esp + 0x26], xmm0
movdqa xmm0, xmmword [0x6b8a10]
movdqu xmmword [esp + 0x36], xmm0
cmp eax, 0x20
je 0x4b15d3
movaps xmm0, xmmword [0x6b8a20]
movups xmmword [esp + 0x46], xmm0
movdqa xmm0, xmmword [0x6b8a30]
movdqu xmmword [esp + 0x56], xmm0
cmp eax, 0x40
je 0x4b15d3
mov ecx, dword [esp + 0x14]
cmp ecx, eax
mov edi, ebp
je 0x4b1645
mov esi, eax
mov eax, ecx
and eax, 0xfffffff8
mov ecx, eax
movzx edx, bl
movd xmm0, edx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
paddb xmm0, xmmword [0x6b8b00]
movdqa xmm1, xmmword [str._b_b_b_b_b_b_b_b]
movq qword [esp + esi + 0x26], xmm0
add esi, 8
paddb xmm0, xmm1
cmp eax, esi
jne 0x4b1615
mov edx, dword [esp + 0x14]
cmp edx, eax
mov edi, ebp
jne 0x4b1638
xor ecx, ecx
mov edx, dword [esp + 0x14]
mov byte [esp + eax + 0x26], cl
inc cl
movzx eax, cl
cmp edx, eax
jg 0x4b1638
xor ebp, ebp
mov ecx, 0
cmp dword [esp + 0x2c], 0
jle 0x4b16cf
mov eax, dword [esp + 0x38]
cmp eax, 2
mov ecx, 1
cmovge ecx, eax
xor eax, eax
mov dword [esp], ecx
jmp 0x4b1681
movzx ecx, byte [esp + 0x18]
mov byte [esp + 0x26], cl
mov byte [edi + eax + 0x1ebc], cl
inc eax
mov ecx, dword [esp]
cmp eax, ecx
je 0x4b16cf
movzx ebx, byte [edi + eax + 0x650e]
movzx ecx, byte [esp + ebx + 0x26]
mov byte [esp + 0x18], cl
test ebx, ebx
je 0x4b1669
mov ch, bl
mov edx, ebx
and ch, 3
je 0x4b16b2
mov esi, ebx
lea edx, [esi - 1]
mov cl, byte [esp + esi + 0x25]
mov byte [esp + esi + 0x26], cl
mov esi, edx
dec ch
jne 0x4b16a1
cmp bl, 4
jb 0x4b1669
add edx, 0xfffffffc
mov esi, edx
mov ecx, dword [esp + edx + 0x26]
mov dword [esp + edx + 0x27], ecx
add esi, 0xfffffffc
test dl, dl
mov edx, esi
jne 0x4b16bc
mov dword [esp], ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
jmp 0x4b16ed
mov dword [esp + 0x14], ecx
cmp ebp, ecx
jge 0x4b17b3
mov dword [edi + 4], 0x21
mov ecx, dword [edi + 0x20]
cmp ecx, 5
mov dword [esp + 0x44], eax
jl 0x4b1757
mov eax, dword [edi + 0x1c]
add ecx, 0xfffffffb
shr eax, cl
and eax, 0x1f
mov dword [edi + 0x20], ecx
xor esi, esi
mov edx, eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
mov dword [esp], esi
cmp esi, eax
jge 0x4b17ad
mov dword [esp + 0x44], eax
lea eax, [edx - 0x15]
cmp eax, 0xffffffec
jae 0x4b0f28
mov dword [esp + 0x18], ebp
mov dword [esp + 0x3c], edx
mov dword [esp + 0x14], ecx
mov eax, 0xfffffffc
jmp 0x4b2de9
mov dword [esp + 0x3c], edx
mov edx, dword [edi]
mov esi, dword [edx + 4]
dec esi
mov dword [esp + 0x18], ebp
jmp 0x4b177d
cmp esi, 0xffffffff
je 0x4b2de7
inc ebp
jmp 0x4b16ed
mov dword [esp + 0x3c], edx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x44], eax
jle 0x4b1a33
mov ecx, eax
and ecx, 0xfffffff8
mov dword [esp + 0x40], ecx
lea ebp, [edi + 0xab64]
lea ebx, [edi + 0xab60]
mov dword [esp + 0x18], 0
pxor xmm6, xmm6
jmp 0x4b189c
test eax, eax
mov dword [esp], ebp
jle 0x4b17ec
xor ebx, ebx
mov ebp, dword [edi + 0xc68]
mov esi, dword [edi + 0x24]
lea eax, [edi + 0x40]
push 0x400
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
inc ebp
mov dword [esp + 4], ebp
mov eax, 0xff0
mov ecx, 0x7ae
movdqa xmm0, xmmword [0x6b8b30]
movdqa xmm1, xmmword [0x6b8b40]
mov edx, eax
add dl, 0xf
mov byte [edi + eax + 0xe8b], dl
mov edx, eax
add dl, 0xe
mov byte [edi + eax + 0xe8a], dl
mov edx, eax
add dl, 0xd
mov byte [edi + eax + 0xe89], dl
movd xmm2, eax
punpcklbw xmm2, xmm2
pshuflw xmm2, xmm2, 0
movdqa xmm3, xmm2
por xmm3, xmm0
movd dword [edi + eax + 0xe85], xmm3
por xmm2, xmm1
movq qword [edi + eax + 0xe7d], xmm2
mov byte [edi + eax + 0xe7c], al
mov dword [edi + ecx*4], eax
add eax, 0xfffffff0
dec ecx
cmp eax, 0xef0
jne 0x4b1a70
mov dword [esp + 0x18], ebx
imul eax, esi, 0x186a0
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x38], 0
jle 0x4b1b52
sub ecx, dword [edx + ebx*4]
cmp ecx, 0x101
ja 0x4b2de9
mov eax, dword [esp + 0x4c]
lea eax, [eax + ecx*4]
mov edx, dword [eax]
cmp edx, dword [esp + 4]
je 0x4b1fc0
cmp edx, 1
mov dword [esp + 0x10], edx
ja 0x4b1bb5
mov ecx, 0xffffffff
mov edx, 1
jmp 0x4b2cee
mov eax, 0xfffffffc
mov ecx, dword [esp + 8]
cmp ecx, dword [esp + 0x5c]
jge 0x4b2de9
lea esi, [edx - 1]
cmp edx, 0x10
ja 0x4b1c8e
mov edx, dword [edi + 0x1e7c]
lea ecx, [edx + esi]
movzx ebx, byte [edi + ecx + 0xe7c]
mov byte [esp + 0x2c], bl
cmp esi, 4
jb 0x4b1c37
mov ebx, dword [esp + 0x10]
add ebx, 0xfffffffb
test bl, 4
jne 0x4b1c0a
mov esi, dword [edi + ecx + 0xe78]
mov dword [edi + ecx + 0xe79], esi
mov esi, ebx
cmp ebx, 4
jb 0x4b1c31
lea ecx, [edx + edi]
add ecx, 0xe79
mov ebx, esi
mov esi, dword [ecx + ebx - 5]
mov ebp, dword [ecx + ebx - 1]
mov dword [ecx + ebx], ebp
mov dword [ecx + ebx - 4], esi
add ebx, 0xfffffff8
cmp ebx, 3
ja 0x4b1c1a
mov esi, ebx
test ebx, ebx
je 0x4b1c7d
lea ecx, [esi - 1]
mov dword [esp + 0xcc], ecx
mov ebp, esi
and ebp, 3
je 0x4b1c5d
lea ecx, [edx + edi]
add ecx, 0xe7c
movzx ebx, byte [ecx + esi - 1]
mov byte [ecx + esi], bl
dec esi
dec ebp
jne 0x4b1c51
cmp dword [esp + 0xcc], 3
jb 0x4b1c7d
lea ecx, [edx + edi]
add ecx, 0xe7c
mov ebx, dword [ecx + esi - 4]
mov dword [ecx + esi - 3], ebx
add esi, 0xfffffffc
jne 0x4b1c70
movzx ebx, byte [esp + 0x2c]
mov byte [edi + edx + 0xe7c], bl
jmp 0x4b1e68
mov edx, esi
shr edx, 4
and esi, 0xf
mov ebp, dword [edi + edx*4 + 0x1e7c]
lea ebx, [esi + ebp]
movzx ecx, byte [edi + ebx + 0xe7c]
mov byte [esp + 0x2c], cl
test esi, esi
je 0x4b1ccf
movzx ecx, byte [edi + ebx + 0xe7b]
mov byte [edi + ebx + 0xe7c], cl
lea esi, [ebx - 1]
mov ebp, dword [edi + edx*4 + 0x1e7c]
mov ebx, esi
cmp esi, ebp
jg 0x4b1cb0
inc ebp
mov dword [edi + edx*4 + 0x1e7c], ebp
nop word [eax + eax]
mov ecx, dword [edi + edx*4 + 0x1e78]
mov esi, dword [edi + edx*4 + 0x1e7c]
lea ebx, [esi - 1]
mov dword [edi + edx*4 + 0x1e7c], ebx
lea ebx, [edx - 1]
movzx ecx, byte [ecx + edi + 0xe8b]
mov byte [edi + esi + 0xe7b], cl
cmp edx, 1
mov edx, ebx
jg 0x4b1ce0
mov ecx, dword [edi + 0x1e7c]
lea edx, [ecx - 1]
mov dword [edi + 0x1e7c], edx
movzx ebx, byte [esp + 0x2c]
mov byte [edi + ecx + 0xe7b], bl
cmp dword [edi + 0x1e7c], 0
jne 0x4b1e68
lea edx, [edi + 0x1eb8]
mov esi, 0xff0
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe8b]
mov byte [edi + esi + 0xe8b], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe8a]
mov byte [edi + esi + 0xe8a], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe89]
mov byte [edi + esi + 0xe89], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe88]
mov byte [edi + esi + 0xe88], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe87]
mov byte [edi + esi + 0xe87], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe86]
mov byte [edi + esi + 0xe86], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe85]
mov byte [edi + esi + 0xe85], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe84]
mov byte [edi + esi + 0xe84], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe83]
mov byte [edi + esi + 0xe83], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe82]
mov byte [edi + esi + 0xe82], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe81]
mov byte [edi + esi + 0xe81], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe80]
mov byte [edi + esi + 0xe80], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe7f]
mov byte [edi + esi + 0xe7f], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe7e]
mov byte [edi + esi + 0xe7e], cl
mov ecx, dword [edx]
movzx ecx, byte [ecx + edi + 0xe7d]
mov byte [edi + esi + 0xe7d], cl
mov ecx, dword [edx]
movzx ecx, byte [edi + ecx + 0xe7c]
mov byte [edi + esi + 0xe7c], cl
mov dword [edx], esi
add esi, 0xfffffff0
add edx, 0xfffffffc
cmp esi, 0xef0
jne 0x4b1d44
movzx ecx, bl
movzx ecx, byte [edi + ecx + 0xd7c]
inc dword [edi + ecx*4 + 0x40]
cmp byte [edi + 0x28], 0
je 0x4b1e8d
mov edx, dword [edi + 0xc50]
mov esi, dword [esp + 8]
mov word [edx + esi*2], cx
jmp 0x4b1e9a
mov edx, dword [edi + 0xc4c]
mov esi, dword [esp + 8]
mov dword [edx + esi*4], ecx
mov ecx, esi
inc ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
test ecx, ecx
mov edx, dword [esp + 0x58]
jne 0x4b1f03
mov ecx, dword [esp + 0x40]
inc ecx
cmp ecx, dword [esp + 0x38]
mov dword [esp + 0x40], ecx
jge 0x4b305d
movzx ecx, byte [edi + ecx + 0x1ebc]
mov edx, dword [edi + ecx*4 + 0xf9fc]
mov eax, ecx
shl eax, 0xa
mov dword [esp + 0x60], ecx
lea eax, [eax + ecx*8]
lea ecx, [edi + eax]
add ecx, 0xb16c
mov dword [esp + 0x54], ecx
lea ecx, [edi + eax + 0xe1cc]
mov dword [esp + 0x4c], ecx
add eax, edi
add eax, 0xc99c
mov dword [esp + 0x50], eax
mov ecx, 0x32
dec ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x58], edx
mov eax, edx
mov dword [edi + 4], 0x28
mov edx, dword [edi + 0x20]
mov dword [esp + 0xc], eax
cmp edx, eax
jge 0x4b1f67
mov ecx, dword [edi]
mov esi, dword [ecx + 4]
dec esi
jmp 0x4b1f37
dec esi
cmp edx, dword [esp + 0xc]
jge 0x4b1f6a
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [ecx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add edx, 8
mov dword [edi + 0x20], edx
inc ebp
mov dword [ecx], ebp
mov dword [ecx + 4], esi
inc dword [ecx + 8]
jne 0x4b1f30
inc dword [ecx + 0xc]
jmp 0x4b1f30
mov eax, dword [edi + 0x1c]
mov ebx, dword [esp + 0xc]
sub edx, ebx
mov ecx, edx
shr eax, cl
mov esi, 0xffffffff
mov ecx, ebx
shl esi, cl
mov ecx, esi
not ecx
and ecx, eax
mov dword [edi + 0x20], edx
mov eax, 0xfffffffc
cmp ebx, 0x14
jg 0x4b3043
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x1c]
cmp esi, dword [ecx + ebx*4]
mov ecx, dword [esp + 0x1c]
jle 0x4b1fb3
inc ebx
mov dword [esp + 0xc], ebx
jmp 0x4b103f
mov edx, dword [esp + 0x50]
mov dword [esp + 0xc], ebx
jmp 0x4b1b7b
mov ecx, dword [edi + 0x34]
mov eax, 0xfffffffc
test ecx, ecx
mov dword [esp + 0x10], edx
js 0x4b24bf
cmp ecx, dword [esp + 8]
jge 0x4b24bf
xor ecx, ecx
mov dword [esp], ecx
mov ecx, dword [edi + ecx*4 + 0x40]
test ecx, ecx
js 0x4b24bf
cmp ecx, dword [esp + 8]
jg 0x4b24bf
mov ecx, dword [esp]
mov ecx, dword [edi + ecx*4 + 0x44]
test ecx, ecx
js 0x4b24b0
cmp ecx, dword [esp + 8]
jg 0x4b24b0
mov ecx, dword [esp]
mov ecx, dword [edi + ecx*4 + 0x48]
test ecx, ecx
js 0x4b24b5
cmp ecx, dword [esp + 8]
jg 0x4b24b5
mov ecx, dword [esp]
mov ecx, dword [edi + ecx*4 + 0x4c]
test ecx, ecx
js 0x4b24bb
cmp ecx, dword [esp + 8]
jg 0x4b24bb
mov ecx, dword [esp]
add ecx, 4
cmp ecx, 0x100
jne 0x4b1fe0
lea esi, [edi + 0x444]
mov dword [edi + 0x444], 0
movups xmm0, xmmword [edi + 0x40]
movups xmm1, xmmword [edi + 0x50]
movups xmmword [edi + 0x448], xmm0
movups xmmword [edi + 0x458], xmm1
movups xmm0, xmmword [edi + 0x60]
movups xmm1, xmmword [edi + 0x70]
movups xmmword [edi + 0x468], xmm0
movups xmmword [edi + 0x478], xmm1
movups xmm0, xmmword [edi + 0x80]
movups xmm1, xmmword [edi + 0x90]
movups xmmword [edi + 0x488], xmm0
movups xmmword [edi + 0x498], xmm1
movups xmm0, xmmword [edi + 0xa0]
movups xmm1, xmmword [edi + 0xb0]
movups xmmword [edi + 0x4a8], xmm0
movups xmmword [edi + 0x4b8], xmm1
movups xmm0, xmmword [edi + 0xc0]
movups xmm1, xmmword [edi + 0xd0]
movups xmmword [edi + 0x4c8], xmm0
movups xmmword [edi + 0x4d8], xmm1
movups xmm0, xmmword [edi + 0xe0]
movups xmm1, xmmword [edi + 0xf0]
movups xmmword [edi + 0x4e8], xmm0
movups xmmword [edi + 0x4f8], xmm1
movups xmm0, xmmword [edi + 0x100]
movups xmm1, xmmword [edi + 0x110]
movups xmmword [edi + 0x508], xmm0
movups xmmword [edi + 0x518], xmm1
movups xmm0, xmmword [edi + 0x120]
movups xmm1, xmmword [edi + 0x130]
movups xmmword [edi + 0x528], xmm0
movups xmmword [edi + 0x538], xmm1
movups xmm0, xmmword [edi + 0x140]
movups xmm1, xmmword [edi + 0x150]
movups xmmword [edi + 0x548], xmm0
movups xmmword [edi + 0x558], xmm1
movups xmm0, xmmword [edi + 0x160]
movups xmm1, xmmword [edi + 0x170]
movups xmmword [edi + 0x568], xmm0
movups xmmword [edi + 0x578], xmm1
movups xmm0, xmmword [edi + 0x180]
movups xmm1, xmmword [edi + 0x190]
movups xmmword [edi + 0x588], xmm0
movups xmmword [edi + 0x598], xmm1
movups xmm0, xmmword [edi + 0x1a0]
movups xmm1, xmmword [edi + 0x1b0]
movups xmmword [edi + 0x5a8], xmm0
movups xmmword [edi + 0x5b8], xmm1
movups xmm0, xmmword [edi + 0x1c0]
movups xmm1, xmmword [edi + 0x1d0]
movups xmmword [edi + 0x5c8], xmm0
movups xmmword [edi + 0x5d8], xmm1
movups xmm0, xmmword [edi + 0x1e0]
movups xmm1, xmmword [edi + 0x1f0]
movups xmmword [edi + 0x5e8], xmm0
movups xmmword [edi + 0x5f8], xmm1
movups xmm0, xmmword [edi + 0x200]
movups xmm1, xmmword [edi + 0x210]
movups xmmword [edi + 0x608], xmm0
movups xmmword [edi + 0x618], xmm1
movups xmm0, xmmword [edi + 0x220]
movups xmm1, xmmword [edi + 0x230]
movups xmmword [edi + 0x628], xmm0
movups xmmword [edi + 0x638], xmm1
movups xmm0, xmmword [edi + 0x240]
movups xmm1, xmmword [edi + 0x250]
movups xmmword [edi + 0x648], xmm0
movups xmmword [edi + 0x658], xmm1
movups xmm0, xmmword [edi + 0x260]
movups xmm1, xmmword [edi + 0x270]
movups xmmword [edi + 0x668], xmm0
movups xmmword [edi + 0x678], xmm1
movups xmm0, xmmword [edi + 0x280]
movups xmm1, xmmword [edi + 0x290]
movups xmmword [edi + 0x688], xmm0
movups xmmword [edi + 0x698], xmm1
movups xmm0, xmmword [edi + 0x2a0]
movups xmm1, xmmword [edi + 0x2b0]
movups xmmword [edi + 0x6a8], xmm0
movups xmmword [edi + 0x6b8], xmm1
movups xmm0, xmmword [edi + 0x2c0]
movups xmm1, xmmword [edi + 0x2d0]
movups xmmword [edi + 0x6c8], xmm0
movups xmmword [edi + 0x6d8], xmm1
movups xmm0, xmmword [edi + 0x2e0]
movups xmm1, xmmword [edi + 0x2f0]
movups xmmword [edi + 0x6e8], xmm0
movups xmmword [edi + 0x6f8], xmm1
movups xmm0, xmmword [edi + 0x300]
movups xmm1, xmmword [edi + 0x310]
movups xmmword [edi + 0x708], xmm0
movups xmmword [edi + 0x718], xmm1
movups xmm0, xmmword [edi + 0x320]
movups xmm1, xmmword [edi + 0x330]
movups xmmword [edi + 0x728], xmm0
movups xmmword [edi + 0x738], xmm1
movups xmm0, xmmword [edi + 0x340]
movups xmm1, xmmword [edi + 0x350]
movups xmmword [edi + 0x748], xmm0
movups xmmword [edi + 0x758], xmm1
movups xmm0, xmmword [edi + 0x360]
movups xmm1, xmmword [edi + 0x370]
movups xmmword [edi + 0x768], xmm0
movups xmmword [edi + 0x778], xmm1
movups xmm0, xmmword [edi + 0x380]
movups xmm1, xmmword [edi + 0x390]
movups xmmword [edi + 0x788], xmm0
movups xmmword [edi + 0x798], xmm1
movups xmm0, xmmword [edi + 0x3a0]
movups xmm1, xmmword [edi + 0x3b0]
movups xmmword [edi + 0x7a8], xmm0
movups xmmword [edi + 0x7b8], xmm1
movups xmm0, xmmword [edi + 0x3c0]
movups xmm1, xmmword [edi + 0x3d0]
movups xmmword [edi + 0x7c8], xmm0
movups xmmword [edi + 0x7d8], xmm1
movups xmm0, xmmword [edi + 0x3e0]
movups xmm1, xmmword [edi + 0x3f0]
movups xmmword [edi + 0x7e8], xmm0
movups xmmword [edi + 0x7f8], xmm1
movups xmm0, xmmword [edi + 0x400]
movups xmm1, xmmword [edi + 0x410]
movups xmmword [edi + 0x808], xmm0
movups xmmword [edi + 0x818], xmm1
movdqu xmm0, xmmword [edi + 0x420]
movdqu xmm1, xmmword [edi + 0x430]
movdqu xmmword [edi + 0x828], xmm0
movdqu xmmword [edi + 0x838], xmm1
xor ecx, ecx
xor edx, edx
add edx, dword [edi + ecx*4 + 0x448]
mov dword [edi + ecx*4 + 0x448], edx
add edx, dword [edi + ecx*4 + 0x44c]
mov dword [edi + ecx*4 + 0x44c], edx
add edx, dword [edi + ecx*4 + 0x450]
mov dword [edi + ecx*4 + 0x450], edx
add edx, dword [edi + ecx*4 + 0x454]
mov dword [edi + ecx*4 + 0x454], edx
add ecx, 4
cmp ecx, 0x100
jne 0x4b23de
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp], ecx
mov ecx, dword [edi + ecx*4 + 0x444]
test ecx, ecx
js 0x4b297e
cmp ecx, edx
jg 0x4b297e
mov ecx, dword [esp]
cmp ecx, 0x100
je 0x4b24c8
mov ecx, dword [edi + ecx*4 + 0x448]
test ecx, ecx
js 0x4b295f
cmp ecx, edx
jg 0x4b295f
mov ecx, dword [esp]
mov ecx, dword [edi + ecx*4 + 0x44c]
test ecx, ecx
js 0x4b2964
cmp ecx, edx
jg 0x4b2964
mov ecx, dword [esp]
mov ecx, dword [edi + ecx*4 + 0x450]
test ecx, ecx
js 0x4b296a
cmp ecx, edx
jg 0x4b296a
mov ecx, dword [esp]
add ecx, 4
mov dword [esp], ecx
mov ecx, dword [edi + ecx*4 + 0x444]
test ecx, ecx
jns 0x4b2439
jmp 0x4b297e
inc dword [esp]
jmp 0x4b24bf
add dword [esp], 2
jmp 0x4b24bf
add dword [esp], 3
mov dword [esp + 4], edx
jmp 0x4b2de9
mov dword [esp + 4], esi
xor esi, esi
xor ecx, ecx
mov edx, dword [edi + esi*4 + 0x448]
cmp ecx, edx
jg 0x4b2970
mov ecx, dword [edi + esi*4 + 0x44c]
cmp edx, ecx
jg 0x4b2973
mov edx, dword [edi + esi*4 + 0x450]
cmp ecx, edx
jg 0x4b2978
mov ecx, dword [edi + esi*4 + 0x454]
add esi, 4
cmp edx, ecx
jg 0x4b297b
cmp esi, 0x100
jne 0x4b24d0
mov dword [edi + 0xc], 0
mov byte [edi + 8], 0
mov dword [edi + 0xc60], 0xffffffff
mov dword [edi + 4], 2
cmp dword [edi + 0x30], 2
jl 0x4b2556
push 2
call dword [0x71401c]
add esp, 4
push eax
push 1
push 6
push str.rtrld
call sub.msvcrt.dll_fwrite
add esp, 0x10
mov eax, dword [esp + 0xe4]
cmp byte [eax + 0x28], 0
je 0x4b2afb
mov edi, dword [esp + 0xe4]
movups xmm0, xmmword [edi + 0x444]
movups xmm1, xmmword [edi + 0x454]
movups xmmword [edi + 0x848], xmm0
movups xmmword [edi + 0x858], xmm1
movups xmm0, xmmword [edi + 0x464]
movups xmm1, xmmword [edi + 0x474]
movups xmmword [edi + 0x868], xmm0
movups xmmword [edi + 0x878], xmm1
movups xmm0, xmmword [edi + 0x484]
movups xmm1, xmmword [edi + 0x494]
movups xmmword [edi + 0x888], xmm0
movups xmmword [edi + 0x898], xmm1
movups xmm0, xmmword [edi + 0x4a4]
movups xmm1, xmmword [edi + 0x4b4]
movups xmmword [edi + 0x8a8], xmm0
movups xmmword [edi + 0x8b8], xmm1
movups xmm0, xmmword [edi + 0x4c4]
movups xmm1, xmmword [edi + 0x4d4]
movups xmmword [edi + 0x8c8], xmm0
movups xmmword [edi + 0x8d8], xmm1
movups xmm0, xmmword [edi + 0x4e4]
movups xmm1, xmmword [edi + 0x4f4]
movups xmmword [edi + 0x8e8], xmm0
movups xmmword [edi + 0x8f8], xmm1
movups xmm0, xmmword [edi + 0x504]
movups xmm1, xmmword [edi + 0x514]
movups xmmword [edi + 0x908], xmm0
movups xmmword [edi + 0x918], xmm1
movups xmm0, xmmword [edi + 0x524]
movups xmm1, xmmword [edi + 0x534]
movups xmmword [edi + 0x928], xmm0
movups xmmword [edi + 0x938], xmm1
movups xmm0, xmmword [edi + 0x544]
movups xmm1, xmmword [edi + 0x554]
movups xmmword [edi + 0x948], xmm0
movups xmmword [edi + 0x958], xmm1
movups xmm0, xmmword [edi + 0x564]
movups xmm1, xmmword [edi + 0x574]
movups xmmword [edi + 0x968], xmm0
movups xmmword [edi + 0x978], xmm1
movups xmm0, xmmword [edi + 0x584]
movups xmm1, xmmword [edi + 0x594]
movups xmmword [edi + 0x988], xmm0
movups xmmword [edi + 0x998], xmm1
movups xmm0, xmmword [edi + 0x5a4]
movups xmm1, xmmword [edi + 0x5b4]
movups xmmword [edi + 0x9a8], xmm0
movups xmmword [edi + 0x9b8], xmm1
movups xmm0, xmmword [edi + 0x5c4]
movups xmm1, xmmword [edi + 0x5d4]
movups xmmword [edi + 0x9c8], xmm0
movups xmmword [edi + 0x9d8], xmm1
movups xmm0, xmmword [edi + 0x5e4]
movups xmm1, xmmword [edi + 0x5f4]
movups xmmword [edi + 0x9e8], xmm0
movups xmmword [edi + 0x9f8], xmm1
movups xmm0, xmmword [edi + 0x604]
movups xmm1, xmmword [edi + 0x614]
movups xmmword [edi + 0xa08], xmm0
movups xmmword [edi + 0xa18], xmm1
movups xmm0, xmmword [edi + 0x624]
movups xmm1, xmmword [edi + 0x634]
movups xmmword [edi + 0xa28], xmm0
movups xmmword [edi + 0xa38], xmm1
movups xmm0, xmmword [edi + 0x644]
movups xmm1, xmmword [edi + 0x654]
movups xmmword [edi + 0xa48], xmm0
movups xmmword [edi + 0xa58], xmm1
movups xmm0, xmmword [edi + 0x664]
movups xmm1, xmmword [edi + 0x674]
movups xmmword [edi + 0xa68], xmm0
movups xmmword [edi + 0xa78], xmm1
movups xmm0, xmmword [edi + 0x684]
movups xmm1, xmmword [edi + 0x694]
movups xmmword [edi + 0xa88], xmm0
movups xmmword [edi + 0xa98], xmm1
movups xmm0, xmmword [edi + 0x6a4]
movups xmm1, xmmword [edi + 0x6b4]
movups xmmword [edi + 0xaa8], xmm0
movups xmmword [edi + 0xab8], xmm1
movups xmm0, xmmword [edi + 0x6c4]
movups xmm1, xmmword [edi + 0x6d4]
movups xmmword [edi + 0xac8], xmm0
movups xmmword [edi + 0xad8], xmm1
movups xmm0, xmmword [edi + 0x6e4]
movups xmm1, xmmword [edi + 0x6f4]
movups xmmword [edi + 0xae8], xmm0
movups xmmword [edi + 0xaf8], xmm1
movups xmm0, xmmword [edi + 0x704]
movups xmm1, xmmword [edi + 0x714]
movups xmmword [edi + 0xb08], xmm0
movups xmmword [edi + 0xb18], xmm1
movups xmm0, xmmword [edi + 0x724]
movups xmm1, xmmword [edi + 0x734]
movups xmmword [edi + 0xb28], xmm0
movups xmmword [edi + 0xb38], xmm1
movups xmm0, xmmword [edi + 0x744]
movups xmm1, xmmword [edi + 0x754]
movups xmmword [edi + 0xb48], xmm0
movups xmmword [edi + 0xb58], xmm1
movups xmm0, xmmword [edi + 0x764]
movups xmm1, xmmword [edi + 0x774]
movups xmmword [edi + 0xb68], xmm0
movups xmmword [edi + 0xb78], xmm1
movups xmm0, xmmword [edi + 0x784]
movups xmm1, xmmword [edi + 0x794]
movups xmmword [edi + 0xb88], xmm0
movups xmmword [edi + 0xb98], xmm1
movups xmm0, xmmword [edi + 0x7a4]
movups xmm1, xmmword [edi + 0x7b4]
movups xmmword [edi + 0xba8], xmm0
movups xmmword [edi + 0xbb8], xmm1
movups xmm0, xmmword [edi + 0x7c4]
movups xmm1, xmmword [edi + 0x7d4]
movups xmmword [edi + 0xbc8], xmm0
movups xmmword [edi + 0xbd8], xmm1
movups xmm0, xmmword [edi + 0x7e4]
movups xmm1, xmmword [edi + 0x7f4]
movups xmmword [edi + 0xbe8], xmm0
movups xmmword [edi + 0xbf8], xmm1
movups xmm0, xmmword [edi + 0x804]
movups xmm1, xmmword [edi + 0x814]
movups xmmword [edi + 0xc08], xmm0
movups xmmword [edi + 0xc18], xmm1
movdqu xmm0, xmmword [edi + 0x824]
movdqu xmm1, xmmword [edi + 0x834]
movdqu xmmword [edi + 0xc28], xmm0
movdqu xmmword [edi + 0xc38], xmm1
mov eax, dword [edi + 0x844]
mov dword [edi + 0xc48], eax
cmp dword [esp + 8], 0
jle 0x4b298b
xor eax, eax
jmp 0x4b2930
and cl, 0xf
shr edx, 0xc
and dl, 0xf0
or dl, cl
mov byte [esi + ebx], dl
mov edi, dword [esp + 0xe4]
inc dword [edi + ebp*4 + 0x848]
inc eax
cmp dword [esp + 8], eax
je 0x4b298b
mov ecx, dword [edi + 0xc50]
movzx ebp, byte [ecx + eax*2]
mov edx, dword [edi + ebp*4 + 0x848]
mov word [ecx + eax*2], dx
mov esi, dword [edi + 0xc54]
mov ebx, eax
shr ebx, 1
movzx ecx, byte [esi + ebx]
test al, 1
jne 0x4b290d
and cl, 0xf0
shr edx, 0x10
jmp 0x4b2916
inc dword [esp]
jmp 0x4b297e
add dword [esp], 2
jmp 0x4b297e
add dword [esp], 3
jmp 0x4b297e
inc esi
jmp 0x4b297b
add esi, 2
jmp 0x4b297b
add esi, 3
mov dword [esp], esi
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], ecx
jmp 0x4b2de9
mov eax, dword [edi + 0x34]
mov edx, dword [edi + 0xc50]
mov ecx, dword [edi + 0xc54]
mov esi, eax
sar esi, 1
movzx esi, byte [ecx + esi]
lea ecx, [eax*4]
and cl, 4
shr esi, cl
movzx ecx, word [edx + eax*2]
and esi, 0xf
shl esi, 0x10
or esi, ecx
mov ecx, esi
jmp 0x4b29e6
and bl, 0xf
shr eax, 0xc
and al, 0xf0
or al, bl
and ebp, 0xf
shl ebp, 0x10
or ebp, ecx
mov ecx, ebp
mov byte [edi + esi], al
mov edx, dword [esp]
mov eax, edx
mov edi, dword [esp + 0xe4]
cmp edx, dword [edi + 0x34]
je 0x4b2a24
mov edx, ecx
mov ebx, dword [edi + 0xc50]
mov edi, dword [edi + 0xc54]
mov esi, ecx
shr esi, 1
movzx ebp, byte [edi + esi]
lea ecx, [ecx*4]
and cl, 4
shr ebp, cl
movzx ecx, word [ebx + edx*2]
mov word [ebx + edx*2], ax
movzx ebx, byte [edi + esi]
mov dword [esp], edx
test dl, 1
jne 0x4b29be
and bl, 0xf0
shr eax, 0x10
jmp 0x4b29c6
mov dword [esp + 0x48], ecx
mov eax, dword [esp]
mov dword [edi + 0x38], eax
mov dword [edi + 0x440], 0
cmp byte [edi + 0x10], 0
je 0x4b2ba4
mov eax, dword [esp + 0xe4]
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
imul ecx, dword [eax + 0x24], 0x186a0
mov eax, 1
cmp dword [esp], ecx
jae 0x4b2f11
push dword [esp + 4]
push dword [esp + 4]
call fcn.004032d0
add esp, 8
mov edi, dword [esp + 0xe4]
mov dword [edi + 0x3c], eax
mov esi, dword [edi + 0xc50]
mov edx, dword [edi + 0x14]
mov ecx, dword [edi + 0x38]
movzx esi, word [esi + ecx*2]
mov ebx, dword [edi + 0xc54]
mov ebp, ecx
shr ebp, 1
movzx ebx, byte [ebx + ebp]
shl ecx, 2
and cl, 4
shr ebx, cl
and ebx, 0xf
shl ebx, 0x10
or ebx, esi
mov dword [edi + 0x38], ebx
inc dword [edi + 0x440]
test edx, edx
jne 0x4b2adc
mov ecx, dword [edi + 0x18]
mov edx, dword [0x6af8dc]
mov edx, dword [edx + ecx*4]
inc ecx
xor esi, esi
cmp ecx, 0x200
cmovne esi, ecx
mov dword [edi + 0x18], esi
dec edx
mov esi, dword [esp + 0xe4]
mov dword [esi + 0x14], edx
xor ecx, ecx
cmp edx, 1
sete cl
xor eax, ecx
mov dword [esi + 0x3c], eax
xor eax, eax
jmp 0x4b297e
mov ecx, dword [eax + 0xc4c]
cmp dword [esp + 8], 0
jle 0x4b2c15
xor eax, eax
cmp dword [esp + 8], 1
je 0x4b2b6c
mov eax, dword [esp + 8]
and eax, 0xfffffffe
mov dword [esp], eax
xor eax, eax
mov esi, 0x100
movzx ebx, byte [ecx + eax*4]
lea ebp, [esi - 0x100]
mov edi, dword [esp + 0xe4]
mov edx, dword [edi + ebx*4 + 0x444]
or dword [ecx + edx*4], ebp
inc dword [edi + ebx*4 + 0x444]
movzx edx, byte [ecx + eax*4 + 4]
mov ebx, dword [edi + edx*4 + 0x444]
or dword [ecx + ebx*4], esi
inc dword [edi + edx*4 + 0x444]
add eax, 2
add esi, 0x200
cmp dword [esp], eax
jne 0x4b2b26
mov edx, dword [esp + 8]
mov dword [esp], edx
test dl, 1
je 0x4b2c1c
movzx edx, byte [ecx + eax*4]
shl eax, 8
mov edi, dword [esp + 0xe4]
mov esi, dword [edi + edx*4 + 0x444]
or dword [ecx + esi*4], eax
inc dword [edi + edx*4 + 0x444]
mov eax, dword [esp + 8]
mov dword [esp], eax
jmp 0x4b2c1c
mov eax, dword [esp + 0xe4]
imul ecx, dword [eax + 0x24], 0x186a0
mov eax, 1
cmp dword [esp], ecx
jae 0x4b2f11
push dword [esp + 4]
push dword [esp + 4]
call fcn.004032d0
add esp, 8
mov edi, dword [esp + 0xe4]
mov dword [edi + 0x3c], eax
mov eax, dword [edi + 0xc50]
mov ecx, dword [edi + 0x38]
movzx eax, word [eax + ecx*2]
mov edx, dword [edi + 0xc54]
mov esi, ecx
shr esi, 1
movzx edx, byte [edx + esi]
shl ecx, 2
and cl, 4
shr edx, cl
and edx, 0xf
shl edx, 0x10
or edx, eax
mov dword [edi + 0x38], edx
inc dword [edi + 0x440]
xor eax, eax
jmp 0x4b297e
mov dword [esp], 0
mov esi, dword [esp + 0xe4]
mov eax, dword [esi + 0x34]
mov edx, dword [ecx + eax*4]
shr edx, 8
mov dword [esi + 0x38], edx
mov dword [esi + 0x440], 0
cmp byte [esi + 0x10], 0
je 0x4b2cac
mov eax, dword [esp + 0xe4]
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
imul esi, dword [eax + 0x24], 0x186a0
mov eax, 1
cmp edx, esi
jae 0x4b2f11
mov ecx, dword [ecx + edx*4]
movzx eax, cl
shr ecx, 8
mov esi, dword [esp + 0xe4]
mov dword [esi + 0x38], ecx
mov dword [esi + 0x440], 1
mov ecx, dword [0x6af8dc]
mov ecx, dword [ecx]
mov dword [esi + 0x18], 1
dec ecx
mov dword [esi + 0x14], ecx
xor edx, edx
cmp ecx, 1
sete dl
xor edx, eax
mov dword [esi + 0x3c], edx
xor eax, eax
jmp 0x4b297e
mov eax, dword [esp + 0xe4]
imul esi, dword [eax + 0x24], 0x186a0
mov eax, 1
cmp edx, esi
jae 0x4b2f11
mov eax, dword [ecx + edx*4]
movzx ecx, al
mov edx, dword [esp + 0xe4]
mov dword [edx + 0x3c], ecx
shr eax, 8
mov dword [edx + 0x38], eax
mov dword [edx + 0x440], 1
xor eax, eax
jmp 0x4b297e
mov eax, 0xfffffffc
cmp edx, 0x1fffff
jg 0x4b3050
lea esi, [edx + edx]
cmp dword [esp + 0x10], 0
mov dword [esp + 0x64], esi
cmovne edx, esi
add edx, ecx
mov ecx, dword [esp + 0x20]
test ecx, ecx
mov dword [esp + 0x30], edx
je 0x4b2d22
mov edx, dword [esp + 0x58]
jmp 0x4b2d78
mov ecx, dword [esp + 0x40]
inc ecx
cmp ecx, dword [esp + 0x38]
mov dword [esp + 0x40], ecx
jge 0x4b305d
movzx ecx, byte [edi + ecx + 0x1ebc]
mov edx, dword [edi + ecx*4 + 0xf9fc]
mov eax, ecx
shl eax, 0xa
mov dword [esp + 0x60], ecx
lea eax, [eax + ecx*8]
lea ecx, [edi + eax]
add ecx, 0xb16c
mov dword [esp + 0x54], ecx
lea ecx, [edi + eax + 0xe1cc]
mov dword [esp + 0x4c], ecx
add eax, edi
add eax, 0xc99c
mov dword [esp + 0x50], eax
mov ecx, 0x32
dec ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x58], edx
mov eax, edx
mov ecx, dword [esp + 0x34]
mov dword [edi + 4], 0x26
mov edx, dword [edi + 0x20]
cmp edx, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0xc], eax
jge 0x4b2f1c
mov ecx, dword [edi]
mov esi, dword [ecx + 4]
dec esi
jmp 0x4b2dbb
dec esi
cmp edx, dword [esp + 0xc]
jge 0x4b2f1f
cmp esi, 0xffffffff
je 0x4b2de7
mov ebx, dword [edi + 0x1c]
shl ebx, 8
mov ebp, dword [ecx]
movzx eax, byte [ebp]
or eax, ebx
mov dword [edi + 0x1c], eax
add edx, 8
mov dword [edi + 0x20], edx
inc ebp
mov dword [ecx], ebp
mov dword [ecx + 4], esi
inc dword [ecx + 8]
jne 0x4b2db0
inc dword [ecx + 0xc]
jmp 0x4b2db0
xor eax, eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp]
mov dword [ecx], edx
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x48]
mov dword [ecx], edx
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x18]
mov dword [ecx], edx
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x44]
mov dword [ecx], edx
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x14]
mov dword [ecx], edx
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x38]
mov dword [ecx], edx
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 4]
mov dword [ecx], edx
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0x40]
mov dword [ecx], edx
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x20]
mov dword [ecx], edx
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x10]
mov dword [ecx], edx
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x5c]
mov dword [ecx], edx
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 8]
mov dword [ecx], edx
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x30]
mov dword [ecx], edx
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x64]
mov dword [ecx], edx
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x3c]
mov dword [ecx], edx
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x6c]
mov dword [ecx], edx
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0xc]
mov dword [ecx], edx
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x1c]
mov dword [ecx], edx
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x68]
mov dword [ecx], edx
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x60]
mov dword [ecx], edx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x58]
mov dword [ecx], edx
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x54]
mov dword [ecx], edx
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x50]
mov dword [ecx], edx
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x4c]
mov dword [ecx], edx
add esp, 0xd0
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [edi + 0x1c]
mov ebx, dword [esp + 0xc]
sub edx, ebx
mov ecx, edx
shr eax, cl
mov esi, 0xffffffff
mov ecx, ebx
shl esi, cl
mov ecx, esi
not ecx
and ecx, eax
mov dword [edi + 0x20], edx
mov eax, 0xfffffffc
cmp ebx, 0x14
jg 0x4b3043
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x1c]
cmp esi, dword [ecx + ebx*4]
mov ecx, dword [esp + 0x1c]
jle 0x4b2f68
inc ebx
mov dword [esp + 0xc], ebx
jmp 0x4b1164
mov edx, dword [esp + 0x50]
mov dword [esp + 0xc], ebx
sub ecx, dword [edx + ebx*4]
cmp ecx, 0x101
ja 0x4b2de9
mov edx, dword [esp + 0x4c]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x10], ecx
cmp ecx, 2
jae 0x4b2f9c
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x30]
jmp 0x4b2cee
mov ebx, dword [esp + 0x30]
lea ecx, [ebx + 1]
mov edx, dword [edi + 0x1e7c]
movzx edx, byte [edi + edx + 0xe7c]
movzx esi, byte [edi + edx + 0xd7c]
add dword [edi + esi*4 + 0x40], ecx
cmp byte [edi + 0x28], 0
je 0x4b2fef
test ebx, ebx
js 0x4b3029
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 8]
cmp ebp, edx
cmovg edx, ebp
cmp edx, ebp
je 0x4b3036
mov ebx, dword [edi + 0xc50]
mov word [ebx + ebp*2], si
inc ebp
lea ebx, [ecx - 1]
cmp ecx, 1
mov ecx, ebx
jg 0x4b2fd4
jmp 0x4b3018
test ebx, ebx
js 0x4b3029
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 8]
cmp ebp, edx
cmovg edx, ebp
cmp edx, ebp
je 0x4b3036
mov ebx, dword [edi + 0xc4c]
mov dword [ebx + ebp*4], esi
inc ebp
lea ebx, [ecx - 1]
cmp ecx, 1
mov ecx, ebx
jg 0x4b3000
mov dword [esp + 8], ebp
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x10]
jmp 0x4b1b93
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x10]
jmp 0x4b1b93
mov dword [esp + 0x30], ecx
mov dword [esp + 8], edx
jmp 0x4b2de9
mov dword [esp + 0xc], ebx
mov dword [esp + 0x1c], ecx
jmp 0x4b2de9
mov dword [esp + 0x64], edx
mov dword [esp + 0x30], ecx
jmp 0x4b2de9
mov dword [esp + 0x20], 0
jmp 0x4b2de9