Function at 0x48ac10
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xe6c
xor edx, edx
mov byte [esp + 0x56c], dl
push ebx
mov byte [esp + 0x571], 8
mov byte [esp + 0x572], 2
mov byte [esp + 0x573], 0xa
push esi
push edi
push ebp
mov byte [esp + 0x580], 0xc
mov byte [esp + 0x581], 4
mov byte [esp + 0x582], 0xe
mov byte [esp + 0x583], 6
mov byte [esp + 0x584], 3
mov byte [esp + 0x585], 0xb
mov byte [esp + 0x586], 1
mov byte [esp + 0x587], 9
mov byte [esp + 0x588], 0xf
mov byte [esp + 0x589], 7
mov byte [esp + 0x58a], 0xd
mov eax, pe_nt_image_headers32
mov byte [esp + 0x7c], dl
mov byte [esp + 0x58b], 5
mov byte [esp + 0x7d], dl
mov byte [esp + 0x7e], dl
mov byte [esp + 0x7f], dl
mov byte [esp + 0x80], dl
mov byte [esp + 0x81], al
mov byte [esp + 0x82], dl
mov byte [esp + 0x83], al
mov byte [esp + 0x84], dl
mov byte [esp + 0x85], dl
mov byte [esp + 0x86], al
mov byte [esp + 0x87], al
mov byte [esp + 0x88], al
mov byte [esp + 0x89], dl
mov byte [esp + 0x8a], dl
mov ecx, 0xc0
mov byte [esp + 0x8b], al
mov byte [esp + 0x8c], dl
mov byte [esp + 0x8d], al
mov byte [esp + 0x8e], al
mov byte [esp + 0x8f], al
mov byte [esp + 0x90], dl
mov byte [esp + 0x91], cl
mov byte [esp + 0x92], cl
mov ebx, 0xff
mov byte [esp + 0x93], cl
mov byte [esp + 0x94], al
mov byte [esp + 0x95], al
mov byte [esp + 0x96], al
mov byte [esp + 0x97], dl
mov byte [esp + 0x98], dl
mov byte [esp + 0x99], bl
mov byte [esp + 0x9a], dl
mov byte [esp + 0x9b], bl
mov byte [esp + 0x9c], dl
mov byte [esp + 0x9d], dl
mov byte [esp + 0x9e], bl
mov byte [esp + 0x9f], bl
mov byte [esp + 0xa0], bl
mov byte [esp + 0xa1], dl
mov byte [esp + 0xa2], dl
mov byte [esp + 0xa3], bl
mov byte [esp + 0xa4], dl
mov byte [esp + 0xa5], bl
mov byte [esp + 0x27c], dl
mov byte [esp + 0xa6], bl
mov byte [esp + 0x27d], dl
mov byte [esp + 0xa7], bl
mov byte [esp + 0x27e], dl
mov byte [esp + 0xa8], dl
mov byte [esp + 0x27f], dl
mov byte [esp + 0xa9], bl
mov byte [esp + 0x280], dl
mov byte [esp + 0xaa], bl
mov byte [esp + 0x281], al
mov byte [esp + 0xab], bl
mov byte [esp + 0x282], dl
mov byte [esp + 0x283], al
mov byte [esp + 0x284], dl
mov byte [esp + 0x285], dl
mov byte [esp + 0x286], al
mov byte [esp + 0x287], al
mov byte [esp + 0x288], al
mov byte [esp + 0x289], dl
mov byte [esp + 0x28a], dl
mov byte [esp + 0x28b], al
mov byte [esp + 0x28c], dl
mov byte [esp + 0x28d], al
mov byte [esp + 0x28e], al
mov byte [esp + 0x28f], al
mov byte [esp + 0x290], dl
mov byte [esp + 0x291], cl
mov byte [esp + 0x292], cl
mov byte [esp + 0x293], cl
mov byte [esp + 0x294], al
mov byte [esp + 0x295], al
mov byte [esp + 0x296], al
mov byte [esp + 0x297], dl
mov byte [esp + 0x298], dl
mov byte [esp + 0x299], bl
mov byte [esp + 0x29a], dl
mov byte [esp + 0x29b], bl
mov byte [esp + 0x29c], dl
mov byte [esp + 0x29d], dl
mov byte [esp + 0x29e], bl
mov byte [esp + 0x29f], bl
mov byte [esp + 0x2a0], bl
mov byte [esp + 0x2a1], dl
mov byte [esp + 0x2a2], dl
mov byte [esp + 0x2a3], bl
mov byte [esp + 0x2a4], dl
mov byte [esp + 0x2a5], bl
mov byte [esp + 0x2a6], bl
mov byte [esp + 0x2a7], bl
mov byte [esp + 0x2a8], dl
mov byte [esp + 0x2a9], bl
mov byte [esp + 0x2aa], bl
mov byte [esp + 0x2ab], bl
lea edi, [esp + 0x2ac]
xor eax, eax
mov ecx, 0xb4
rep stosd dword es:[edi], eax
cmp dword [esp + 0xe80], edx
je 0x48af6c
mov eax, dword [esp + 0xe80]
push edx
push edx
push 0x401
push eax
call dword [case.0x427228.0]
cmp dword [esp + 0xe88], 0
jne 0x48af85
mov ax, 0x65
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret
mov eax, dword [esp + 0xe88]
cmp dword [esp + 0xe84], 0
mov dword [eax], 0
jne 0x48afab
mov ax, 0x65
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret
cmp dword [esp + 0xe8c], 4
je 0x48afd8
cmp dword [esp + 0xe8c], 8
je 0x48afd8
cmp dword [esp + 0xe8c], 0x18
je 0x48afd8
mov ax, 0x65
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret
mov eax, dword [esp + 0xe84]
push eax
call dword [0x4c258c]
mov cx, word [eax + 0xe]
cmp cx, 4
jae 0x48b00d
mov eax, dword [esp + 0xe84]
push eax
call dword [0x4c2590]
mov ax, 0x65
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret
mov word [esp + 0x18], cx
mov esi, dword [eax + 4]
mov ax, word [eax + 8]
mov word [esp + 0x1e], si
mov word [esp + 0x14], ax
movzx eax, cx
imul eax, esi
add eax, 0x1f
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
shl eax, 2
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xe8c]
imul eax, esi
add eax, 0x1f
cdq
mov bp, 0
and edx, 0x1f
add eax, edx
sar eax, 5
shl eax, 2
cmp dword [esp + 0xe8c], 0x18
mov dword [esp + 0x74], eax
je 0x48b075
mov bp, 1
mov cl, byte [esp + 0xe8c]
shl bp, cl
mov eax, dword [esp + 0xe84]
push eax
call dword [0x4c2590]
movsx edx, word [esp + 0x14]
mov esi, edx
mov dword [esp + 0x70], edx
movsx edi, bp
imul esi, dword [esp + 0x74]
lea eax, [esi + edi*4 + 0x28]
push eax
push 0x42
call dword [0x4c2588]
mov dword [esp + 0x40], eax
test eax, eax
jne 0x48b0ba
mov ax, 0x66
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret
mov eax, dword [esp + 0xe84]
push eax
call dword [0x4c258c]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x24], eax
push ecx
call dword [0x4c258c]
movsx edx, word [esp + 0x1e]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x3c], eax
mov dword [eax], 0x28
mov dword [eax + 4], edx
mov dx, word [esp + 0xe8c]
mov dword [eax + 8], ebx
mov word [eax + 0xc], 1
mov word [eax + 0xe], dx
xor edx, edx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], esi
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], edx
mov dword [eax + 0x20], edi
mov dword [eax + 0x24], edi
mov edi, dword [esp + 0xe94]
mov dword [eax + 0x14], esi
cmp edi, edx
je 0x48b17e
mov eax, dword [eax]
add eax, dword [esp + 0x3c]
test bp, bp
jle 0x48b2d6
movsx ecx, dx
inc dx
inc eax
lea esi, [ecx + ecx*2]
inc eax
lea ecx, [edi + ecx*4]
inc eax
inc eax
mov bl, byte [ecx]
cmp bp, dx
mov byte [esp + esi + 0x27c], bl
mov bl, byte [ecx + 1]
mov byte [esp + esi + 0x27d], bl
mov bl, byte [ecx + 2]
mov byte [esp + esi + 0x27e], bl
mov bl, byte [ecx]
mov byte [eax - 4], bl
mov bl, byte [ecx + 1]
mov byte [eax - 3], bl
mov cl, byte [ecx + 2]
mov byte [eax - 2], cl
mov byte [eax - 1], 0
jg 0x48b133
jmp 0x48b2d6
mov ecx, dword [esp + 0x3c]
add ecx, dword [ecx]
cmp dword [esp + 0xe8c], 4
jne 0x48b1bc
xor dx, dx
movsx eax, dx
inc dx
inc ecx
lea eax, [eax + eax*2]
inc ecx
inc ecx
mov bl, byte [esp + eax + 0x7c]
inc ecx
cmp dx, 0x10
mov byte [ecx - 4], bl
mov bl, byte [esp + eax + 0x7d]
mov al, byte [esp + eax + 0x7e]
mov byte [ecx - 3], bl
mov byte [ecx - 2], al
mov byte [ecx - 1], 0
jl 0x48b191
cmp dword [esp + 0xe8c], 8
jne 0x48b2d6
cmp byte [esp + 0xe98], 0
je 0x48b1de
cmp byte [esp + 0xe98], 2
jne 0x48b226
xor di, di
xor edx, edx
xor ax, ax
xor bx, bx
movsx esi, di
inc di
lea esi, [esi + esi*2]
mov byte [esp + esi + 0x27c], dl
mov byte [esp + esi + 0x27d], al
mov byte [esp + esi + 0x27e], bl
add bx, 0x33
cmp bx, 0xff
jle 0x48b1e9
add ax, 0x33
cmp ax, 0xff
jle 0x48b1e6
add dx, 0x33
cmp dx, 0xff
jle 0x48b1e3
cmp byte [esp + 0xe98], 1
jne 0x48b29e
xor si, si
movsx eax, si
mov bx, 6
lea edi, [eax + eax*2]
mov ax, si
cwd
idiv bx
mov bp, 6
mov bl, 0x33
mov al, dl
imul bl
mov bx, bp
mov byte [esp + edi + 0x27e], al
mov ax, si
cwd
idiv bp
mov bp, 0x24
cwd
idiv bx
mov bl, 0x33
mov al, dl
imul bl
mov bx, 6
mov byte [esp + edi + 0x27d], al
mov ax, si
cwd
idiv bp
inc si
cwd
idiv bx
mov bl, 0x33
mov al, dl
imul bl
cmp si, 0xd8
mov byte [esp + edi + 0x27c], al
jl 0x48b233
xor dx, dx
movsx eax, dx
inc dx
inc ecx
lea eax, [eax + eax*2]
inc ecx
inc ecx
mov bl, byte [esp + eax + 0x27c]
inc ecx
cmp dx, 0x100
mov byte [ecx - 4], bl
mov bl, byte [esp + eax + 0x27d]
mov byte [ecx - 3], bl
mov al, byte [esp + eax + 0x27e]
mov byte [ecx - 2], al
mov byte [ecx - 1], 0
jl 0x48b2a1
cmp dword [esp + 0xe8c], 4
je 0x48b2ee
cmp dword [esp + 0xe8c], 8
jne 0x48b4a2
cmp byte [esp + 0xe98], 1
je 0x48b4a2
mov esi, dword [esp + 0xea0]
test esi, esi
je 0x48b40a
push 0x8000
push 0x42
call dword [0x4c2588]
mov dword [esp + 0x34], eax
test eax, eax
jne 0x48b353
mov eax, dword [esp + 0xe84]
push eax
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
push ecx
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
push ecx
call dword [0x4c2594]
mov ax, 0x66
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret
mov eax, dword [esp + 0x34]
push eax
call dword [0x4c258c]
mov dword [esp + 0x38], eax
push 0
push esi
call dword [0x4c2560]
cmp eax, 0xffffffff
mov esi, eax
jne 0x48b3b9
mov eax, dword [esp + 0xe84]
push eax
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
push ecx
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
mov esi, dword [0x4c2594]
push ecx
call esi
mov ecx, dword [esp + 0x34]
push ecx
call dword [0x4c2590]
mov eax, dword [esp + 0x34]
push eax
call esi
mov ax, 0x320
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret
cmp dword [esp + 0xe8c], 8
jne 0x48b3d1
push 0
push 0x8000
push esi
call dword [0x4c2564]
mov eax, dword [esp + 0x38]
push 0x8000
push eax
push esi
call dword [0x4c2568]
push esi
cmp eax, 0x8000
je 0x48b3ff
call dword [0x4c256c]
mov ax, 0xca
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret
call dword [0x4c256c]
jmp 0x48b4ac
mov dword [esp + 0x38], 0
push 0x10000
push 0x42
call dword [0x4c2588]
mov dword [esp + 0x34], eax
test eax, eax
jne 0x48b45a
mov eax, dword [esp + 0xe84]
push eax
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
push ecx
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
push ecx
call dword [0x4c2594]
mov ax, 0x66
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret
mov eax, dword [esp + 0x34]
push eax
call dword [0x4c258c]
mov word [0x4c037c], 0x10
cmp dword [esp + 0xe8c], 4
mov dword [0x4c0378], eax
je 0x48b486
mov word [0x4c037c], 0x100
xor ax, ax
movzx edx, ax
inc ax
mov ecx, dword [0x4c0378]
mov word [ecx + edx*2], 0x8000
cmp ax, 0x8000
jb 0x48b489
jmp 0x48b4ac
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
cmp byte [esp + 0xe98], 2
jne 0x48b528
mov si, 0xff01
mov cx, si
lea eax, [esi + 0xff]
movsx edi, ax
movsx eax, si
inc si
add eax, 8
cdq
and edx, 0xf
mov ebx, 0xa
add eax, edx
sar eax, 4
mov byte [esp + edi + 0xb7c], al
movsx ax, al
sub cx, ax
movsx eax, cx
lea eax, [eax*2 + 5]
cdq
idiv ebx
mov ebx, 0xc
mov byte [esp + edi + 0x77c], al
movsx ax, al
sub cx, ax
movsx edx, cx
lea eax, [edx + edx*4 + 6]
cdq
idiv ebx
sub cl, al
mov byte [esp + edi + 0x97c], al
cmp si, 0x100
mov byte [esp + edi + 0x7c], cl
jl 0x48b4ba
cmp byte [esp + 0xe98], 1
jne 0x48b69c
cmp dword [esp + 0xe8c], 8
jne 0x48b548
fld qword [0x4b3db8]
jmp 0x48b54e
fld qword [0x4b3dc0]
fstp qword [esp + 0x48]
fld qword [0x4b3dd0]
mov word [esp + 0x1c], 0
movsx eax, word [esp + 0x1c]
mov word [esp + 0x64], 0
mov dword [esp + 0x6c], eax
xor bp, bp
mov eax, dword [esp + 0x6c]
movsx ecx, word [esp + 0x64]
mov dword [esp + 0x44], ecx
lea edx, [ecx + eax*4]
xor ecx, ecx
mov cl, byte [esp + edx + 0x57c]
mov dword [esp + 0x67c], ecx
mov dword [esp + 0x680], 0
fild qword [esp + 0x67c]
fst qword [esp + 0x67c]
movsx eax, bp
xor di, di
lea ebx, [eax*4]
mov eax, dword [esp + 0x6c]
add eax, ebx
shl eax, 2
mov dword [esp + 0x28], eax
movsx esi, di
lea ecx, [esi + ebx]
inc di
xor eax, eax
mov al, byte [esp + ecx + 0x57c]
mov dword [esp + 0x67c], eax
mov dword [esp + 0x680], 0
fild qword [esp + 0x67c]
fmul qword [0x4b3dc8]
fadd st(1)
fmul qword [esp + 0x48]
fadd st(2)
call 0x4a8cd0
add esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
cmp di, 4
lea edx, [ecx + esi*4]
mov byte [esp + edx + 0xd7c], al
jl 0x48b5c5
inc bp
cmp bp, 4
jl 0x48b5ab
fstp st(0)
inc word [esp + 0x64]
cmp word [esp + 0x64], 4
jl 0x48b56f
inc word [esp + 0x1c]
cmp word [esp + 0x1c], 4
jl 0x48b55f
fstp st(0)
xor si, si
movsx edi, si
mov bx, si
mov dword [esp + 0x48], edi
fild dword [esp + 0x48]
inc si
fmul qword [0x4b3dd8]
call 0x4a8cd0
xor ecx, ecx
mov byte [esp + edi + 0x67c], al
mov cl, al
mov dword [esp + 0x48], ecx
fild dword [esp + 0x48]
fmul qword [0x4b3de0]
call 0x4a8cd0
sub bl, al
cmp si, 0x100
mov byte [esp + edi + 0x57c], bl
jl 0x48b64b
mov byte [esp + 0x67b], 0
mov eax, dword [esp + 0x1e]
and eax, 0xffff
mov dword [esp + 0x6c], eax
lea ecx, [eax + eax*2 + 6]
lea esi, [ecx*2]
push esi
push 0x42
call dword [0x4c2588]
mov dword [esp + 0x50], eax
test eax, eax
jne 0x48b713
mov eax, dword [esp + 0xe84]
push eax
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
push ecx
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
mov esi, dword [0x4c2594]
push ecx
call esi
cmp dword [esp + 0x34], 0
je 0x48b704
mov eax, dword [esp + 0x34]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x34]
push eax
call esi
mov ax, 0x66
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret
push esi
push 0x42
call dword [0x4c2588]
mov dword [esp + 0x58], eax
test eax, eax
jne 0x48b784
mov eax, dword [esp + 0xe84]
push eax
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
push ecx
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
mov esi, dword [0x4c2594]
push ecx
call esi
mov ecx, dword [esp + 0x50]
push ecx
call dword [0x4c2590]
mov eax, dword [esp + 0x50]
push eax
call esi
cmp dword [esp + 0x34], 0
je 0x48b775
mov eax, dword [esp + 0x34]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x34]
push eax
call esi
mov ax, 0x66
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret
mov eax, dword [esp + 0x78]
and eax, 0xffff
push eax
push 0x42
call dword [0x4c2588]
mov dword [esp + 0x60], eax
test eax, eax
jne 0x48b810
mov eax, dword [esp + 0xe84]
push eax
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
push ecx
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
mov esi, dword [0x4c2594]
push ecx
call esi
mov ecx, dword [esp + 0x50]
push ecx
call dword [0x4c2590]
mov eax, dword [esp + 0x50]
push eax
call esi
mov eax, dword [esp + 0x58]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x58]
push eax
call esi
cmp dword [esp + 0x34], 0
je 0x48b801
mov eax, dword [esp + 0x34]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x34]
push eax
call esi
mov ax, 0x66
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret
mov eax, dword [esp + 0x74]
and eax, 0xffff
push eax
push 0x42
call dword [0x4c2588]
mov dword [esp + 0x68], eax
test eax, eax
jne 0x48b8b2
mov eax, dword [esp + 0xe84]
push eax
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
push ecx
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
mov esi, dword [0x4c2594]
push ecx
call esi
mov ecx, dword [esp + 0x50]
push ecx
call dword [0x4c2590]
mov eax, dword [esp + 0x50]
push eax
call esi
mov eax, dword [esp + 0x58]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x58]
push eax
call esi
mov eax, dword [esp + 0x60]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x60]
push eax
call esi
cmp dword [esp + 0x34], 0
je 0x48b8a3
mov eax, dword [esp + 0x34]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x34]
push eax
call esi
mov ax, 0x66
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret
mov eax, dword [esp + 0x50]
push eax
call dword [0x4c258c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x58]
push eax
call dword [0x4c258c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x60]
push eax
call dword [0x4c258c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x68]
push eax
call dword [0x4c258c]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x48b90e
mov cx, word [ecx + 0xe]
cmp cx, 8
jbe 0x48b907
xor eax, eax
jmp 0x48b911
mov eax, 1
shl eax, cl
shl eax, 2
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
dec edx
mov ebx, dword [esp + 0x24]
imul ecx, edx
add ecx, dword [esp + 0x3c]
lea eax, [ecx + eax + 0x28]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0x20]
test eax, eax
jne 0x48b949
mov cx, word [ebx + 0xe]
cmp cx, 8
jbe 0x48b942
xor eax, eax
jmp 0x48b94c
mov eax, 1
shl eax, cl
shl eax, 2
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x24]
imul ecx, edx
add ecx, dword [esp + 0x24]
add ebx, 0x28
mov dword [esp + 0x30], ebx
lea eax, [ecx + eax + 0x28]
mov dword [esp + 0x64], eax
movsx eax, word [esp + 0x14]
cdq
xor eax, edx
sub eax, edx
and eax, 0xf
xor eax, edx
sub eax, edx
mov word [esp + 0x16], ax
mov ax, word [esp + 0x14]
dec ax
mov word [esp + 0x14], ax
cmp ax, 0xffff
jle 0x48d6a7
cmp dword [esp + 0xe80], 0
je 0x48b9e0
movsx ecx, word [esp + 0x14]
mov eax, dword [esp + 0x70]
push 0
sub eax, ecx
shl eax, 2
lea ecx, [eax + eax*4]
lea eax, [ecx + ecx*4]
cdq
idiv dword [esp + 0x74]
mov edx, dword [esp + 0xe84]
push eax
push 0x401
push edx
call dword [case.0x427228.0]
push 0x1b
call dword [0x4c3300]
test ax, ax
jl 0x48d763
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x64]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [esp + 0xe98], 0
jne 0x48bf6f
cmp word [esp + 0x18], 0x18
jne 0x48bba0
cmp dword [esp + 0xe8c], 0x18
jne 0x48bad4
cmp dword [esp + 0xe90], 0x10
jne 0x48bad4
xor di, di
xor si, si
cmp word [esp + 0x1e], si
jle 0x48bad4
mov bp, word [esp + 0x1e]
movzx ecx, si
inc si
mov edx, dword [esp + 0x20]
movzx ax, byte [ecx + edx]
movzx ecx, si
inc si
movzx bx, byte [ecx + edx]
movzx ecx, si
inc si
movzx cx, byte [ecx + edx]
movsx edx, di
inc di
mov word [esp + 0x48], cx
mov ecx, dword [esp + 0x2c]
add edx, ecx
mov cx, ax
shr ax, 5
and cl, 0xf8
and al, 7
mov byte [edx], cl
add al, cl
mov ecx, dword [esp + 0x2c]
mov byte [edx], al
movsx edx, di
mov ax, bx
add ecx, edx
shr bx, 6
and al, 0xfc
inc di
and bl, 3
add bl, al
mov byte [ecx], al
movsx eax, di
inc di
mov byte [ecx], bl
mov ecx, dword [esp + 0x2c]
lea edx, [eax + ecx]
mov ax, word [esp + 0x48]
mov cx, word [esp + 0x48]
and al, 0xf8
shr cx, 5
mov byte [edx], al
and cl, 7
add cl, al
dec bp
mov byte [edx], cl
jne 0x48ba46
cmp word [esp + 0x18], 0x18
jne 0x48bc3d
cmp dword [esp + 0xe8c], 0x18
jne 0x48bba0
cmp dword [esp + 0xe90], 0xf
jne 0x48bba0
xor di, di
xor si, si
cmp word [esp + 0x1e], si
jle 0x48bba0
mov bp, word [esp + 0x1e]
movzx ecx, si
inc si
mov edx, dword [esp + 0x20]
movzx ax, byte [ecx + edx]
movzx ecx, si
inc si
movzx bx, byte [ecx + edx]
movzx ecx, si
inc si
movzx cx, byte [ecx + edx]
movsx edx, di
inc di
mov word [esp + 0x48], cx
mov ecx, dword [esp + 0x2c]
add edx, ecx
mov cx, ax
shr ax, 5
and cl, 0xf8
and al, 7
mov byte [edx], cl
add al, cl
mov ecx, dword [esp + 0x2c]
mov byte [edx], al
movsx edx, di
mov ax, bx
add ecx, edx
shr bx, 5
and al, 0xf8
inc di
and bl, 7
add bl, al
mov byte [ecx], al
movsx eax, di
inc di
mov byte [ecx], bl
mov ecx, dword [esp + 0x2c]
lea edx, [eax + ecx]
mov ax, word [esp + 0x48]
mov cx, word [esp + 0x48]
and al, 0xf8
shr cx, 5
mov byte [edx], al
and cl, 7
add cl, al
dec bp
mov byte [edx], cl
jne 0x48bb12
cmp word [esp + 0x18], 0x18
jne 0x48bd05
cmp dword [esp + 0xe8c], 8
jne 0x48bc3d
xor si, si
xor di, di
cmp word [esp + 0x1e], si
jle 0x48bc3d
movzx eax, si
inc si
mov edx, dword [esp + 0x20]
movzx bx, byte [eax + edx]
movzx eax, si
inc si
movzx bp, byte [eax + edx]
movzx ecx, si
inc si
cmp dword [esp + 0x38], 0
movzx ax, byte [ecx + edx]
je 0x48bc17
and ax, 0xf8
mov edx, dword [esp + 0x38]
shl ax, 5
and bp, 0xf8
or ax, bp
shl ax, 2
shr bx, 3
or ax, bx
movsx ecx, ax
mov al, byte [ecx + edx]
jmp 0x48bc2a
lea ecx, [esp + 0x27c]
push ecx
push ebx
push ebp
push eax
call fcn.0048d800
add esp, 0x10
movsx edx, di
inc di
mov ecx, dword [esp + 0x2c]
cmp di, word [esp + 0x1e]
mov byte [edx + ecx], al
jl 0x48bbc7
cmp word [esp + 0x18], 0x18
jne 0x48bd05
cmp dword [esp + 0xe8c], 4
jne 0x48bd05
xor di, di
mov bl, 1
xor si, si
cmp word [esp + 0x1e], si
jle 0x48bd05
mov ax, word [esp + 0x1e]
mov word [esp + 0x28], ax
movzx eax, si
inc si
mov edx, dword [esp + 0x20]
movzx cx, byte [eax + edx]
movzx eax, si
inc si
movzx bp, byte [eax + edx]
movzx eax, si
inc si
cmp dword [esp + 0x38], 0
movzx ax, byte [eax + edx]
je 0x48bcc4
and ax, 0xf8
shl ax, 5
and bp, 0xf8
or ax, bp
shl ax, 2
shr cx, 3
or ax, cx
mov ecx, dword [esp + 0x38]
movsx edx, ax
mov al, byte [edx + ecx]
jmp 0x48bcd7
lea edx, [esp + 0x27c]
push edx
push ecx
push ebp
push eax
call fcn.0048d800
add esp, 0x10
test bl, bl
je 0x48bcec
shl al, 4
mov ecx, dword [esp + 0x2c]
movsx edx, di
xor bl, bl
mov byte [edx + ecx], al
jmp 0x48bcfa
mov ecx, dword [esp + 0x2c]
mov bl, 1
movsx edx, di
inc di
add byte [edx + ecx], al
dec word [esp + 0x28]
jne 0x48bc74
cmp word [esp + 0x18], 8
jne 0x48be86
cmp dword [esp + 0xe8c], 8
jne 0x48bdb6
xor di, di
cmp word [esp + 0x1e], di
jle 0x48bdb6
mov edx, dword [esp + 0x20]
movsx esi, di
movzx ax, byte [esi + edx]
mov edx, dword [esp + 0x30]
lea ecx, [eax*4]
movsx ebp, cx
inc cx
movzx bx, byte [ebp + edx]
movsx eax, cx
inc cx
movzx bp, byte [eax + edx]
movsx eax, cx
cmp dword [esp + 0x38], 0
movzx ax, byte [eax + edx]
je 0x48bd8f
and ax, 0xf8
mov edx, dword [esp + 0x38]
shl ax, 5
and bp, 0xf8
or ax, bp
shl ax, 2
shr bx, 3
or ax, bx
movsx ecx, ax
mov al, byte [ecx + edx]
jmp 0x48bda2
lea ecx, [esp + 0x27c]
push ecx
push ebx
push ebp
push eax
call fcn.0048d800
add esp, 0x10
inc di
mov ecx, dword [esp + 0x2c]
cmp di, word [esp + 0x1e]
mov byte [esi + ecx], al
jl 0x48bd2d
cmp word [esp + 0x18], 8
jne 0x48be86
cmp dword [esp + 0xe8c], 4
jne 0x48be86
xor di, di
mov bl, 1
xor si, si
cmp word [esp + 0x1e], si
jle 0x48be86
mov edx, dword [esp + 0x20]
movsx ecx, si
movzx ax, byte [ecx + edx]
shl ax, 2
mov edx, dword [esp + 0x30]
movsx ebp, ax
inc ax
movzx cx, byte [ebp + edx]
movsx ebp, ax
inc ax
cmp dword [esp + 0x38], 0
movsx eax, ax
movzx bp, byte [ebp + edx]
movzx ax, byte [eax + edx]
je 0x48be43
and ax, 0xf8
shl ax, 5
and bp, 0xf8
or ax, bp
shl ax, 2
shr cx, 3
or ax, cx
mov ecx, dword [esp + 0x38]
movsx edx, ax
mov al, byte [edx + ecx]
jmp 0x48be56
lea edx, [esp + 0x27c]
push edx
push ecx
push ebp
push eax
call fcn.0048d800
add esp, 0x10
test bl, bl
je 0x48be6b
shl al, 4
mov ecx, dword [esp + 0x2c]
movsx edx, di
xor bl, bl
mov byte [edx + ecx], al
jmp 0x48be79
mov ecx, dword [esp + 0x2c]
mov bl, 1
movsx edx, di
inc di
add byte [edx + ecx], al
inc si
cmp si, word [esp + 0x1e]
jl 0x48bde3
cmp word [esp + 0x18], 4
jne 0x48bf6f
cmp dword [esp + 0xe8c], 4
jne 0x48bf6f
xor si, si
mov bl, 1
cmp word [esp + 0x1e], si
jle 0x48bf6f
mov di, word [esp + 0x1e]
test bl, bl
je 0x48becc
mov edx, dword [esp + 0x20]
movsx eax, si
mov al, byte [eax + edx]
shr al, 4
movzx ax, al
jmp 0x48bedd
movsx ecx, si
xor ax, ax
mov edx, dword [esp + 0x20]
mov al, byte [ecx + edx]
and ax, 0xf
shl ax, 2
mov edx, dword [esp + 0x30]
movsx ebp, ax
inc ax
movzx cx, byte [ebp + edx]
movsx ebp, ax
inc ax
cmp dword [esp + 0x38], 0
movsx eax, ax
movzx bp, byte [ebp + edx]
movzx ax, byte [eax + edx]
je 0x48bf31
and ax, 0xf8
shl ax, 5
and bp, 0xf8
or ax, bp
shl ax, 2
shr cx, 3
or ax, cx
mov ecx, dword [esp + 0x38]
movsx edx, ax
mov al, byte [edx + ecx]
jmp 0x48bf44
lea edx, [esp + 0x27c]
push edx
push ecx
push ebp
push eax
call fcn.0048d800
add esp, 0x10
test bl, bl
je 0x48bf59
shl al, 4
mov ecx, dword [esp + 0x2c]
movsx edx, si
xor bl, bl
mov byte [edx + ecx], al
jmp 0x48bf67
mov ecx, dword [esp + 0x2c]
mov bl, 1
movsx edx, si
inc si
add byte [edx + ecx], al
dec di
jne 0x48beb5
cmp byte [esp + 0xe98], 1
jne 0x48c5bf
cmp word [esp + 0x16], 0
jne 0x48bf8e
mov word [esp + 0x16], 0xf
jmp 0x48bf93
dec word [esp + 0x16]
xor di, di
cmp word [esp + 0x18], 0x18
jne 0x48c1e7
cmp dword [esp + 0xe8c], 8
jne 0x48c09a
xor si, si
xor bx, bx
cmp word [esp + 0x1e], bx
jle 0x48c09a
movsx eax, word [esp + 0x16]
mov dword [esp + 0x48], eax
movzx ecx, si
inc si
mov edx, dword [esp + 0x20]
movzx ax, byte [ecx + edx]
movzx ecx, si
inc si
movzx ebp, si
mov word [esp + 0x28], ax
movzx ax, byte [ecx + edx]
mov word [esp + 0x44], ax
movsx eax, di
shl eax, 4
add eax, dword [esp + 0x48]
inc si
mov cl, byte [esp + eax + 0xd7c]
xor eax, eax
mov al, byte [ebp + edx]
mov dl, byte [esp + eax + 0x67c]
cmp byte [esp + eax + 0x57c], cl
jbe 0x48c01a
inc dl
movsx eax, word [esp + 0x28]
cmp byte [esp + eax + 0x57c], cl
jbe 0x48c03c
mov byte [esp + 0x28], 0x24
mov al, byte [esp + eax + 0x67c]
inc al
imul byte [esp + 0x28]
jmp 0x48c04c
mov byte [esp + 0x28], 0x24
mov al, byte [esp + eax + 0x67c]
imul byte [esp + 0x28]
add dl, al
movsx eax, word [esp + 0x44]
cmp byte [esp + eax + 0x57c], cl
jbe 0x48c069
mov al, byte [esp + eax + 0x67c]
mov cl, 6
inc al
jmp 0x48c072
mov cl, 6
mov al, byte [esp + eax + 0x67c]
imul cl
add dl, al
mov ecx, dword [esp + 0x2c]
movsx eax, bx
cmp di, 0xf
mov byte [eax + ecx], dl
jne 0x48c08b
xor di, di
jmp 0x48c08d
inc di
inc bx
cmp bx, word [esp + 0x1e]
jl 0x48bfca
cmp word [esp + 0x18], 0x18
jne 0x48c1e7
cmp dword [esp + 0xe8c], 4
jne 0x48c1e7
mov byte [esp + 0x13], 1
xor si, si
mov word [esp + 0x1c], si
cmp word [esp + 0x1e], si
jle 0x48c1e7
movsx eax, word [esp + 0x16]
mov cx, word [esp + 0x1e]
mov dword [esp + 0x48], eax
mov word [esp + 0x28], cx
movzx eax, si
inc si
mov edx, dword [esp + 0x20]
movzx cx, byte [eax + edx]
movzx eax, si
inc si
movzx bp, byte [eax + edx]
movzx eax, si
inc si
movzx bx, byte [eax + edx]
movsx eax, di
shl eax, 4
add eax, dword [esp + 0x48]
cmp bp, bx
movzx dx, byte [esp + eax + 0xd7c]
jne 0x48c171
cmp bx, cx
jne 0x48c171
cmp bx, 0x80
jge 0x48c139
movsx eax, dx
cdq
sub eax, edx
sar eax, 1
cmp ax, bx
mov al, 8
jl 0x48c19c
xor al, al
jmp 0x48c19c
movsx eax, dx
cmp bx, 0xc0
cdq
jge 0x48c15a
and edx, 3
add eax, edx
sar eax, 2
add ax, 0x80
cmp ax, bx
setge al
add al, 7
jmp 0x48c19c
and edx, 3
add eax, edx
sar eax, 2
add ax, 0xc0
cmp ax, bx
mov al, 0xf
jle 0x48c19c
mov al, 7
jmp 0x48c19c
cmp dx, bx
setl al
cmp bp, dx
jle 0x48c17e
add al, 2
cmp dx, cx
jge 0x48c185
add al, 4
cmp bx, 0x80
jg 0x48c19a
cmp bp, 0x80
jg 0x48c19a
cmp cx, 0x80
jle 0x48c19c
add al, 8
cmp byte [esp + 0x13], 0
je 0x48c1b9
shl al, 4
mov ecx, dword [esp + 0x2c]
movsx edx, word [esp + 0x1c]
mov byte [esp + 0x13], 0
mov byte [edx + ecx], al
jmp 0x48c1cf
movsx edx, word [esp + 0x1c]
inc word [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x13], 1
add byte [edx + ecx], al
cmp di, 0xf
jne 0x48c1da
xor di, di
jmp 0x48c1dc
inc di
dec word [esp + 0x28]
jne 0x48c0df
cmp word [esp + 0x18], 8
jne 0x48c451
cmp dword [esp + 0xe8c], 8
jne 0x48c2f8
xor bx, bx
cmp word [esp + 0x1e], bx
jle 0x48c2f8
movsx eax, word [esp + 0x16]
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x20]
movsx esi, bx
movzx ax, byte [esi + edx]
mov edx, dword [esp + 0x30]
lea ecx, [eax*4]
movsx ebp, cx
inc cx
movzx ax, byte [ebp + edx]
movsx ebp, cx
inc cx
mov word [esp + 0x28], ax
movzx ax, byte [ebp + edx]
mov word [esp + 0x44], ax
movsx ebp, cx
movsx eax, di
shl eax, 4
add eax, dword [esp + 0x48]
mov cl, byte [esp + eax + 0xd7c]
xor eax, eax
mov al, byte [ebp + edx]
mov dl, byte [esp + eax + 0x67c]
cmp byte [esp + eax + 0x57c], cl
jbe 0x48c27b
inc dl
movsx eax, word [esp + 0x28]
cmp byte [esp + eax + 0x57c], cl
jbe 0x48c29d
mov byte [esp + 0x28], 0x24
mov al, byte [esp + eax + 0x67c]
inc al
imul byte [esp + 0x28]
jmp 0x48c2ad
mov byte [esp + 0x28], 0x24
mov al, byte [esp + eax + 0x67c]
imul byte [esp + 0x28]
add dl, al
movsx eax, word [esp + 0x44]
cmp byte [esp + eax + 0x57c], cl
jbe 0x48c2ca
mov al, byte [esp + eax + 0x67c]
mov cl, 6
inc al
jmp 0x48c2d3
mov cl, 6
mov al, byte [esp + eax + 0x67c]
imul cl
add dl, al
mov ecx, dword [esp + 0x2c]
cmp di, 0xf
mov byte [esi + ecx], dl
jne 0x48c2e9
xor di, di
jmp 0x48c2eb
inc di
inc bx
cmp bx, word [esp + 0x1e]
jl 0x48c218
cmp word [esp + 0x18], 8
jne 0x48c451
cmp dword [esp + 0xe8c], 4
jne 0x48c451
mov byte [esp + 0x13], 1
mov word [esp + 0x1c], 0
xor si, si
cmp word [esp + 0x1e], si
jle 0x48c451
movsx eax, word [esp + 0x16]
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x20]
movsx ecx, si
movzx ax, byte [ecx + edx]
mov edx, dword [esp + 0x30]
lea ebx, [eax*4]
movsx ebp, bx
inc bx
movsx eax, bx
inc bx
movzx cx, byte [ebp + edx]
movzx bp, byte [eax + edx]
movsx eax, bx
movzx bx, byte [eax + edx]
movsx eax, di
shl eax, 4
add eax, dword [esp + 0x48]
cmp bp, bx
movzx dx, byte [esp + eax + 0xd7c]
jne 0x48c3d9
cmp bx, cx
jne 0x48c3d9
cmp bx, 0x80
jge 0x48c3a1
movsx eax, dx
cdq
sub eax, edx
sar eax, 1
cmp ax, bx
mov al, 8
jl 0x48c404
xor al, al
jmp 0x48c404
movsx eax, dx
cmp bx, 0xc0
cdq
jge 0x48c3c2
and edx, 3
add eax, edx
sar eax, 2
add ax, 0x80
cmp ax, bx
setge al
add al, 7
jmp 0x48c404
and edx, 3
add eax, edx
sar eax, 2
add ax, 0xc0
cmp ax, bx
mov al, 0xf
jle 0x48c404
mov al, 7
jmp 0x48c404
cmp dx, bx
setl al
cmp bp, dx
jle 0x48c3e6
add al, 2
cmp dx, cx
jge 0x48c3ed
add al, 4
cmp bx, 0x80
jg 0x48c402
cmp bp, 0x80
jg 0x48c402
cmp cx, 0x80
jle 0x48c404
add al, 8
cmp byte [esp + 0x13], 0
je 0x48c421
shl al, 4
mov ecx, dword [esp + 0x2c]
movsx edx, word [esp + 0x1c]
mov byte [esp + 0x13], 0
mov byte [edx + ecx], al
jmp 0x48c437
movsx edx, word [esp + 0x1c]
inc word [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x13], 1
add byte [edx + ecx], al
cmp di, 0xf
jne 0x48c442
xor di, di
jmp 0x48c444
inc di
inc si
cmp si, word [esp + 0x1e]
jl 0x48c335
cmp word [esp + 0x18], 4
jne 0x48c5bf
cmp dword [esp + 0xe8c], 4
jne 0x48c5bf
mov byte [esp + 0x13], 1
xor bp, bp
cmp word [esp + 0x1e], bp
jle 0x48c5bf
movsx eax, word [esp + 0x16]
mov cx, word [esp + 0x1e]
mov dword [esp + 0x48], eax
mov word [esp + 0x28], cx
cmp byte [esp + 0x13], 0
je 0x48c4ab
mov edx, dword [esp + 0x20]
movsx eax, bp
mov al, byte [eax + edx]
shr al, 4
movzx ax, al
jmp 0x48c4bc
movsx ecx, bp
xor ax, ax
mov edx, dword [esp + 0x20]
mov al, byte [ecx + edx]
and ax, 0xf
shl ax, 2
mov edx, dword [esp + 0x30]
movsx ebx, ax
inc ax
movzx cx, byte [ebx + edx]
movsx ebx, ax
inc ax
movsx eax, ax
movzx si, byte [ebx + edx]
movzx bx, byte [eax + edx]
movsx eax, di
shl eax, 4
add eax, dword [esp + 0x48]
cmp si, bx
movzx dx, byte [esp + eax + 0xd7c]
jne 0x48c550
cmp bx, cx
jne 0x48c550
cmp bx, 0x80
jge 0x48c518
movsx eax, dx
cdq
sub eax, edx
sar eax, 1
cmp ax, bx
mov al, 8
jl 0x48c57b
xor al, al
jmp 0x48c57b
movsx eax, dx
cmp bx, 0xc0
cdq
jge 0x48c539
and edx, 3
add eax, edx
sar eax, 2
add ax, 0x80
cmp ax, bx
setge al
add al, 7
jmp 0x48c57b
and edx, 3
add eax, edx
sar eax, 2
add ax, 0xc0
cmp ax, bx
mov al, 0xf
jle 0x48c57b
mov al, 7
jmp 0x48c57b
cmp dx, bx
setl al
cmp si, dx
jle 0x48c55d
add al, 2
cmp dx, cx
jge 0x48c564
add al, 4
cmp bx, 0x80
jg 0x48c579
cmp si, 0x80
jg 0x48c579
cmp cx, 0x80
jle 0x48c57b
add al, 8
cmp byte [esp + 0x13], 0
je 0x48c596
shl al, 4
mov ecx, dword [esp + 0x2c]
movsx edx, bp
mov byte [esp + 0x13], 0
mov byte [edx + ecx], al
jmp 0x48c5a7
movsx edx, bp
inc bp
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x13], 1
add byte [edx + ecx], al
cmp di, 0xf
jne 0x48c5b2
xor di, di
jmp 0x48c5b4
inc di
dec word [esp + 0x28]
jne 0x48c491
cmp byte [esp + 0xe98], 2
jne 0x48d66c
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
lea eax, [eax + eax*2 + 6]
add eax, eax
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor di, di
mov ecx, dword [esp + 0x54]
mov word [ecx + 0xa], 0
mov word [ecx + 8], 0
mov word [ecx + 6], 0
xor bx, bx
xor si, si
xor dx, dx
mov word [esp + 0x44], bx
cmp word [esp + 0x18], 0x18
mov word [esp + 0x28], bx
mov word [esp + 0x1a], dx
jne 0x48ca9f
cmp dword [esp + 0xe8c], 0x18
jne 0x48c85d
cmp dword [esp + 0xe90], 0x10
jne 0x48c85d
mov word [esp + 0x1c], dx
cmp word [esp + 0x1e], dx
jle 0x48c85d
mov ax, word [esp + 0x1e]
mov word [esp + 0x48], ax
mov edi, dword [esp + 0x1a]
mov eax, dword [esp + 0x5c]
inc word [esp + 0x1a]
and edi, 0xffff
mov si, word [eax + edi*2 + 8]
lea eax, [eax + edi*2]
mov cx, word [eax + 0xa]
add si, word [esp + 0x28]
add cx, dx
mov edx, dword [esp + 0x20]
movzx di, byte [edi + edx]
add di, word [eax + 6]
mov eax, dword [esp + 0x1a]
add di, word [esp + 0x44]
and eax, 0xffff
movzx ax, byte [eax + edx]
inc word [esp + 0x1a]
lea ebx, [eax + esi]
mov eax, dword [esp + 0x1a]
inc word [esp + 0x1a]
and eax, 0xffff
movzx ax, byte [eax + edx]
test di, di
lea esi, [eax + ecx]
jge 0x48c6cf
xor di, di
jmp 0x48c6da
cmp di, 0xff
jle 0x48c6da
mov di, 0xff
test bx, bx
jge 0x48c6e4
xor bx, bx
jmp 0x48c6ef
cmp bx, 0xff
jle 0x48c6ef
mov bx, 0xff
test si, si
jge 0x48c6f9
xor si, si
jmp 0x48c704
cmp si, 0xff
jle 0x48c704
mov si, 0xff
mov ax, si
mov ecx, dword [esp + 0x2c]
mov dx, di
and al, 0xf8
and dl, 0xf8
mov byte [esp + 0x13], al
movsx ebp, word [esp + 0x1c]
shr al, 5
add byte [esp + 0x13], al
mov ax, bx
and al, 0xfc
mov byte [esp + 0x24], al
shr al, 6
add byte [esp + 0x24], al
mov al, dl
shr al, 5
add dl, al
mov al, byte [esp + 0x24]
mov byte [ebp + ecx], dl
inc word [esp + 0x1c]
movsx ebp, word [esp + 0x1c]
inc word [esp + 0x1c]
mov byte [ebp + ecx], al
movsx ebp, word [esp + 0x1c]
inc word [esp + 0x1c]
mov al, byte [esp + 0x13]
mov byte [ebp + ecx], al
mov ax, di
movzx cx, dl
sub ax, cx
sar ax, 1
movsx ecx, ax
mov word [esp + 0x28], ax
lea edx, [ecx + ecx*4]
sar edx, 3
lea ebp, [ecx*8]
sub word [esp + 0x28], dx
sub ebp, ecx
sar ebp, 3
mov ecx, dword [esp + 0x54]
mov word [esp + 0x44], bp
mov ebp, dword [esp + 0x1a]
sub ax, word [esp + 0x44]
and ebp, 0xffff
lea ecx, [ecx + ebp*2]
mov bp, word [esp + 0x28]
add word [ecx - 6], bp
add word [ecx], dx
mov dx, bx
mov word [ecx + 6], ax
movzx ax, byte [esp + 0x24]
sub dx, ax
sar dx, 1
movsx eax, dx
lea ebp, [eax + eax*4]
sar ebp, 3
mov word [esp + 0x24], bp
lea ebp, [eax*8]
sub ebp, eax
sar ebp, 3
mov word [esp + 0x28], bp
mov ax, dx
mov bp, word [esp + 0x24]
sub ax, word [esp + 0x24]
add word [ecx - 4], ax
add word [ecx + 2], bp
mov bp, si
movzx ax, byte [esp + 0x13]
sub bp, ax
sub dx, word [esp + 0x28]
sar bp, 1
movsx eax, bp
mov word [ecx + 8], dx
lea edx, [eax + eax*4]
sar edx, 3
mov word [esp + 0x24], dx
lea edx, [eax*8]
sub edx, eax
sar edx, 3
mov ax, bp
sub bp, dx
sub ax, word [esp + 0x24]
add word [ecx - 2], ax
mov ax, word [esp + 0x24]
add word [ecx + 4], ax
mov word [ecx + 0xa], bp
dec word [esp + 0x48]
jne 0x48c660
cmp word [esp + 0x18], 0x18
jne 0x48ccd2
cmp dword [esp + 0xe8c], 0x18
jne 0x48ca9f
cmp dword [esp + 0xe90], 0xf
jne 0x48ca9f
mov word [esp + 0x1c], 0
cmp word [esp + 0x1e], 0
jle 0x48ca9f
mov ax, word [esp + 0x1e]
mov word [esp + 0x48], ax
mov edi, dword [esp + 0x1a]
mov eax, dword [esp + 0x5c]
inc word [esp + 0x1a]
and edi, 0xffff
mov si, word [eax + edi*2 + 8]
lea eax, [eax + edi*2]
mov cx, word [eax + 0xa]
add si, word [esp + 0x28]
add cx, dx
mov edx, dword [esp + 0x20]
movzx di, byte [edi + edx]
add di, word [eax + 6]
mov eax, dword [esp + 0x1a]
add di, word [esp + 0x44]
and eax, 0xffff
movzx ax, byte [eax + edx]
inc word [esp + 0x1a]
lea ebx, [eax + esi]
mov eax, dword [esp + 0x1a]
inc word [esp + 0x1a]
and eax, 0xffff
movzx ax, byte [eax + edx]
test di, di
lea esi, [eax + ecx]
jge 0x48c911
xor di, di
jmp 0x48c91c
cmp di, 0xff
jle 0x48c91c
mov di, 0xff
test bx, bx
jge 0x48c926
xor bx, bx
jmp 0x48c931
cmp bx, 0xff
jle 0x48c931
mov bx, 0xff
test si, si
jge 0x48c93b
xor si, si
jmp 0x48c946
cmp si, 0xff
jle 0x48c946
mov si, 0xff
mov ax, si
mov ecx, dword [esp + 0x2c]
mov dx, di
and al, 0xf8
and dl, 0xf8
mov byte [esp + 0x13], al
movsx ebp, word [esp + 0x1c]
shr al, 5
add byte [esp + 0x13], al
mov ax, bx
and al, 0xf8
mov byte [esp + 0x24], al
shr al, 5
add byte [esp + 0x24], al
mov al, dl
shr al, 5
add dl, al
mov al, byte [esp + 0x24]
mov byte [ebp + ecx], dl
inc word [esp + 0x1c]
movsx ebp, word [esp + 0x1c]
inc word [esp + 0x1c]
mov byte [ebp + ecx], al
movsx ebp, word [esp + 0x1c]
inc word [esp + 0x1c]
mov al, byte [esp + 0x13]
mov byte [ebp + ecx], al
mov bp, di
movzx cx, dl
sub bp, cx
sar bp, 1
movsx ecx, bp
mov word [esp + 0x28], bp
lea eax, [ecx + ecx*4]
sar eax, 3
lea edx, [ecx*8]
sub word [esp + 0x28], ax
sub edx, ecx
sar edx, 3
mov ecx, dword [esp + 0x54]
mov word [esp + 0x44], dx
mov edx, dword [esp + 0x1a]
sub bp, word [esp + 0x44]
and edx, 0xffff
lea ecx, [ecx + edx*2]
mov dx, word [esp + 0x28]
add word [ecx - 6], dx
mov dx, bx
add word [ecx], ax
movzx ax, byte [esp + 0x24]
sub dx, ax
sar dx, 1
movsx eax, dx
mov word [ecx + 6], bp
lea ebp, [eax + eax*4]
sar ebp, 3
mov word [esp + 0x24], bp
lea ebp, [eax*8]
sub ebp, eax
sar ebp, 3
mov word [esp + 0x28], bp
mov ax, dx
mov bp, word [esp + 0x24]
sub ax, word [esp + 0x24]
add word [ecx - 4], ax
add word [ecx + 2], bp
mov bp, si
movzx ax, byte [esp + 0x13]
sub bp, ax
sub dx, word [esp + 0x28]
sar bp, 1
movsx eax, bp
mov word [ecx + 8], dx
lea edx, [eax + eax*4]
sar edx, 3
mov word [esp + 0x24], dx
lea edx, [eax*8]
sub edx, eax
sar edx, 3
mov ax, bp
sub bp, dx
sub ax, word [esp + 0x24]
add word [ecx - 2], ax
mov ax, word [esp + 0x24]
add word [ecx + 4], ax
mov word [ecx + 0xa], bp
dec word [esp + 0x48]
jne 0x48c8a2
cmp word [esp + 0x18], 0x18
jne 0x48cf34
cmp dword [esp + 0xe8c], 8
jne 0x48ccd2
mov word [esp + 0x24], 0
cmp word [esp + 0x1e], 0
jle 0x48ccd2
mov ecx, dword [esp + 0x1a]
mov eax, dword [esp + 0x5c]
and ecx, 0xffff
add di, word [eax + ecx*2 + 6]
add bx, word [eax + ecx*2 + 8]
add si, word [eax + ecx*2 + 0xa]
lea eax, [eax + ecx*2]
cmp byte [esp + 0xe9c], 0
je 0x48cb11
movsx edi, di
movsx ebx, bx
movsx esi, si
lea edi, [edi + edi*2]
lea ebx, [ebx + ebx*2]
shr edi, 2
lea esi, [esi + esi*2]
shr ebx, 2
shr esi, 2
inc word [esp + 0x1a]
mov edx, dword [esp + 0x20]
movzx ax, byte [ecx + edx]
add di, ax
mov eax, dword [esp + 0x1a]
inc word [esp + 0x1a]
and eax, 0xffff
movzx ax, byte [eax + edx]
add bx, ax
mov eax, dword [esp + 0x1a]
inc word [esp + 0x1a]
and eax, 0xffff
movzx ax, byte [eax + edx]
add si, ax
test di, di
jge 0x48cb58
xor di, di
jmp 0x48cb63
cmp di, 0xff
jle 0x48cb63
mov di, 0xff
test bx, bx
jge 0x48cb6d
xor bx, bx
jmp 0x48cb78
cmp bx, 0xff
jle 0x48cb78
mov bx, 0xff
test si, si
jge 0x48cb82
xor si, si
jmp 0x48cb8d
cmp si, 0xff
jle 0x48cb8d
mov si, 0xff
cmp dword [esp + 0x38], 0
je 0x48cbc4
mov cx, si
and cx, 0xf8
shl cx, 5
mov ax, bx
and ax, 0xf8
or cx, ax
shl cx, 2
mov ax, di
shr ax, 3
or cx, ax
mov eax, dword [esp + 0x38]
movsx edx, cx
mov al, byte [edx + eax]
jmp 0x48cbd7
lea eax, [esp + 0x27c]
push eax
push edi
push ebx
push esi
call fcn.0048d800
add esp, 0x10
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x1a]
movsx edx, word [esp + 0x24]
mov byte [edx + ecx], al
xor ecx, ecx
mov cl, al
inc word [esp + 0x24]
and ebp, 0xffff
lea edx, [ecx + ecx*2]
mov ecx, dword [esp + 0x54]
movzx ax, byte [esp + edx + 0x27c]
sub di, ax
lea ecx, [ecx + ebp*2]
add di, 0xff
movsx eax, di
movsx di, byte [esp + eax + 0x7c]
movsx bp, byte [esp + eax + 0x77c]
add word [ecx - 6], bp
movsx bp, byte [esp + eax + 0x97c]
movsx ax, byte [esp + eax + 0xb7c]
add word [ecx], bp
mov word [ecx + 6], ax
movzx ax, byte [esp + edx + 0x27d]
sub bx, ax
add bx, 0xff
movsx eax, bx
movsx bx, byte [esp + eax + 0x7c]
movsx bp, byte [esp + eax + 0x77c]
add word [ecx - 4], bp
movsx bp, byte [esp + eax + 0x97c]
movsx ax, byte [esp + eax + 0xb7c]
add word [ecx + 2], bp
mov word [ecx + 8], ax
movzx dx, byte [esp + edx + 0x27e]
sub si, dx
add si, 0xff
movsx edx, si
movsx si, byte [esp + edx + 0x7c]
movsx ax, byte [esp + edx + 0x77c]
movsx bp, byte [esp + edx + 0x97c]
add word [ecx - 2], ax
mov ax, word [esp + 0x24]
movsx dx, byte [esp + edx + 0xb7c]
add word [ecx + 4], bp
mov word [ecx + 0xa], dx
cmp ax, word [esp + 0x1e]
jl 0x48cacc
cmp word [esp + 0x18], 0x18
jne 0x48cf34
cmp dword [esp + 0xe8c], 4
jne 0x48cf34
mov byte [esp + 0x13], 1
mov word [esp + 0x1c], 0
cmp word [esp + 0x1e], 0
jle 0x48cf34
mov ax, word [esp + 0x1e]
mov word [esp + 0x48], ax
mov ecx, dword [esp + 0x1a]
mov eax, dword [esp + 0x5c]
and ecx, 0xffff
add di, word [eax + ecx*2 + 6]
add bx, word [eax + ecx*2 + 8]
add si, word [eax + ecx*2 + 0xa]
lea eax, [eax + ecx*2]
cmp byte [esp + 0xe9c], 0
je 0x48cd53
movsx edi, di
movsx ebx, bx
movsx esi, si
lea edi, [edi + edi*2]
lea ebx, [ebx + ebx*2]
shr edi, 2
lea esi, [esi + esi*2]
shr ebx, 2
shr esi, 2
inc word [esp + 0x1a]
mov edx, dword [esp + 0x20]
movzx ax, byte [ecx + edx]
add di, ax
mov eax, dword [esp + 0x1a]
inc word [esp + 0x1a]
and eax, 0xffff
movzx ax, byte [eax + edx]
add bx, ax
mov eax, dword [esp + 0x1a]
inc word [esp + 0x1a]
and eax, 0xffff
movzx ax, byte [eax + edx]
add si, ax
test di, di
jge 0x48cd9a
xor di, di
jmp 0x48cda5
cmp di, 0xff
jle 0x48cda5
mov di, 0xff
test bx, bx
jge 0x48cdaf
xor bx, bx
jmp 0x48cdba
cmp bx, 0xff
jle 0x48cdba
mov bx, 0xff
test si, si
jge 0x48cdc4
xor si, si
jmp 0x48cdcf
cmp si, 0xff
jle 0x48cdcf
mov si, 0xff
cmp dword [esp + 0x38], 0
je 0x48ce06
mov cx, si
and cx, 0xf8
shl cx, 5
mov ax, bx
and ax, 0xf8
or cx, ax
shl cx, 2
mov ax, di
shr ax, 3
or cx, ax
mov eax, dword [esp + 0x38]
movsx edx, cx
mov al, byte [edx + eax]
jmp 0x48ce19
lea eax, [esp + 0x27c]
push eax
push edi
push ebx
push esi
call fcn.0048d800
add esp, 0x10
cmp byte [esp + 0x13], 0
je 0x48ce39
mov dl, al
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x13], 0
movsx ebp, word [esp + 0x1c]
shl dl, 4
mov byte [ebp + ecx], dl
jmp 0x48ce4f
movsx edx, word [esp + 0x1c]
inc word [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x13], 1
add byte [edx + ecx], al
xor ecx, ecx
mov ebp, dword [esp + 0x1a]
mov cl, al
and ebp, 0xffff
lea edx, [ecx + ecx*2]
mov ecx, dword [esp + 0x54]
movzx ax, byte [esp + edx + 0x27c]
sub di, ax
lea ecx, [ecx + ebp*2]
add di, 0xff
movsx eax, di
movsx di, byte [esp + eax + 0x7c]
movsx bp, byte [esp + eax + 0x77c]
add word [ecx - 6], bp
movsx bp, byte [esp + eax + 0x97c]
movsx ax, byte [esp + eax + 0xb7c]
add word [ecx], bp
mov word [ecx + 6], ax
movzx ax, byte [esp + edx + 0x27d]
sub bx, ax
add bx, 0xff
movsx eax, bx
movsx bx, byte [esp + eax + 0x7c]
movsx bp, byte [esp + eax + 0x77c]
add word [ecx - 4], bp
movsx bp, byte [esp + eax + 0x97c]
movsx ax, byte [esp + eax + 0xb7c]
add word [ecx + 2], bp
mov word [ecx + 8], ax
movzx dx, byte [esp + edx + 0x27e]
sub si, dx
add si, 0xff
movsx edx, si
movsx si, byte [esp + edx + 0x7c]
movsx ax, byte [esp + edx + 0x77c]
movsx bp, byte [esp + edx + 0x97c]
movsx dx, byte [esp + edx + 0xb7c]
add word [ecx - 2], ax
add word [ecx + 4], bp
mov word [ecx + 0xa], dx
dec word [esp + 0x48]
jne 0x48cd0e
cmp word [esp + 0x18], 8
jne 0x48d3de
cmp dword [esp + 0xe8c], 8
jne 0x48d168
mov word [esp + 0x24], 0
cmp word [esp + 0x1e], 0
jle 0x48d168
add word [esp + 0x1a], 3
mov eax, dword [esp + 0x1a]
and eax, 0xffff
add eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x48]
add eax, ebp
add di, word [eax]
add bx, word [eax + 2]
add si, word [eax + 4]
cmp byte [esp + 0xe9c], 0
je 0x48cfb0
movsx edi, di
movsx ebx, bx
movsx esi, si
lea edi, [edi + edi*2]
lea ebx, [ebx + ebx*2]
shr edi, 2
lea esi, [esi + esi*2]
shr ebx, 2
shr esi, 2
mov edx, dword [esp + 0x20]
movsx ebp, word [esp + 0x24]
movzx ax, byte [ebp + edx]
mov edx, dword [esp + 0x30]
lea ecx, [eax*4]
movsx eax, cx
inc cx
movzx ax, byte [eax + edx]
add di, ax
movsx eax, cx
inc cx
movzx ax, byte [eax + edx]
add bx, ax
movsx eax, cx
movzx ax, byte [eax + edx]
add si, ax
test di, di
jge 0x48cff9
xor di, di
jmp 0x48d004
cmp di, 0xff
jle 0x48d004
mov di, 0xff
test bx, bx
jge 0x48d00e
xor bx, bx
jmp 0x48d019
cmp bx, 0xff
jle 0x48d019
mov bx, 0xff
test si, si
jge 0x48d023
xor si, si
jmp 0x48d02e
cmp si, 0xff
jle 0x48d02e
mov si, 0xff
cmp dword [esp + 0x38], 0
je 0x48d065
mov cx, si
and cx, 0xf8
shl cx, 5
mov ax, bx
and ax, 0xf8
or cx, ax
shl cx, 2
mov ax, di
shr ax, 3
or cx, ax
mov eax, dword [esp + 0x38]
movsx edx, cx
mov al, byte [edx + eax]
jmp 0x48d078
lea eax, [esp + 0x27c]
push eax
push edi
push ebx
push esi
call fcn.0048d800
add esp, 0x10
inc word [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov byte [ebp + ecx], al
xor ecx, ecx
mov cl, al
mov ebp, dword [esp + 0x48]
lea edx, [ecx + ecx*2]
mov ecx, dword [esp + 0x54]
movzx ax, byte [esp + edx + 0x27c]
sub di, ax
add ecx, ebp
add di, 0xff
movsx eax, di
movsx di, byte [esp + eax + 0x7c]
movsx bp, byte [esp + eax + 0x77c]
add word [ecx - 6], bp
movsx bp, byte [esp + eax + 0x97c]
movsx ax, byte [esp + eax + 0xb7c]
add word [ecx], bp
mov word [ecx + 6], ax
movzx ax, byte [esp + edx + 0x27d]
sub bx, ax
add bx, 0xff
movsx eax, bx
movsx bx, byte [esp + eax + 0x7c]
movsx bp, byte [esp + eax + 0x77c]
add word [ecx - 4], bp
movsx bp, byte [esp + eax + 0x97c]
movsx ax, byte [esp + eax + 0xb7c]
add word [ecx + 2], bp
mov word [ecx + 8], ax
movzx dx, byte [esp + edx + 0x27e]
sub si, dx
add si, 0xff
movsx edx, si
movsx si, byte [esp + edx + 0x7c]
movsx ax, byte [esp + edx + 0x77c]
movsx bp, byte [esp + edx + 0x97c]
add word [ecx - 2], ax
mov ax, word [esp + 0x24]
movsx dx, byte [esp + edx + 0xb7c]
add word [ecx + 4], bp
mov word [ecx + 0xa], dx
cmp ax, word [esp + 0x1e]
jl 0x48cf61
cmp word [esp + 0x18], 8
jne 0x48d3de
cmp dword [esp + 0xe8c], 4
jne 0x48d3de
mov byte [esp + 0x13], 1
mov word [esp + 0x1c], 0
mov word [esp + 0x24], 0
cmp word [esp + 0x1e], 0
jle 0x48d3de
add word [esp + 0x1a], 3
mov eax, dword [esp + 0x1a]
and eax, 0xffff
add eax, eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 0x44]
add di, word [eax]
add bx, word [eax + 2]
add si, word [eax + 4]
cmp byte [esp + 0xe9c], 0
je 0x48d1ee
movsx edi, di
movsx ebx, bx
movsx esi, si
lea edi, [edi + edi*2]
lea ebx, [ebx + ebx*2]
shr edi, 2
lea esi, [esi + esi*2]
shr ebx, 2
shr esi, 2
mov edx, dword [esp + 0x20]
movsx ecx, word [esp + 0x24]
movzx ax, byte [ecx + edx]
mov edx, dword [esp + 0x30]
lea ecx, [eax*4]
movsx ebp, cx
inc cx
movzx ax, byte [ebp + edx]
add di, ax
movsx ebp, cx
movzx ax, byte [ebp + edx]
inc cx
movsx ebp, cx
add bx, ax
movzx ax, byte [ebp + edx]
add si, ax
test di, di
jge 0x48d239
xor di, di
jmp 0x48d244
cmp di, 0xff
jle 0x48d244
mov di, 0xff
test bx, bx
jge 0x48d24e
xor bx, bx
jmp 0x48d259
cmp bx, 0xff
jle 0x48d259
mov bx, 0xff
test si, si
jge 0x48d263
xor si, si
jmp 0x48d26e
cmp si, 0xff
jle 0x48d26e
mov si, 0xff
cmp dword [esp + 0x38], 0
je 0x48d2a5
mov cx, si
and cx, 0xf8
shl cx, 5
mov ax, bx
and ax, 0xf8
or cx, ax
shl cx, 2
mov ax, di
shr ax, 3
or cx, ax
mov eax, dword [esp + 0x38]
movsx edx, cx
mov al, byte [edx + eax]
jmp 0x48d2b8
lea eax, [esp + 0x27c]
push eax
push edi
push ebx
push esi
call fcn.0048d800
add esp, 0x10
cmp byte [esp + 0x13], 0
je 0x48d2e0
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x28], al
shl byte [esp + 0x28], 4
movsx ebp, word [esp + 0x1c]
mov byte [esp + 0x13], 0
mov dl, byte [esp + 0x28]
mov byte [ebp + ecx], dl
jmp 0x48d2f6
movsx edx, word [esp + 0x1c]
inc word [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x13], 1
add byte [edx + ecx], al
inc word [esp + 0x24]
xor ecx, ecx
mov cl, al
mov edx, dword [esp + 0x44]
lea eax, [ecx + ecx*2]
movzx cx, byte [esp + eax + 0x27c]
sub di, cx
mov ecx, dword [esp + 0x54]
add di, 0xff
add ecx, edx
movsx ebp, di
movsx di, byte [esp + ebp + 0x7c]
movsx dx, byte [esp + ebp + 0x77c]
add word [ecx - 6], dx
movsx dx, byte [esp + ebp + 0x97c]
movsx bp, byte [esp + ebp + 0xb7c]
add word [ecx], dx
mov word [ecx + 6], bp
movzx dx, byte [esp + eax + 0x27d]
sub bx, dx
add bx, 0xff
movsx edx, bx
movsx bx, byte [esp + edx + 0x7c]
movsx bp, byte [esp + edx + 0x77c]
add word [ecx - 4], bp
movsx bp, byte [esp + edx + 0x97c]
movsx dx, byte [esp + edx + 0xb7c]
add word [ecx + 2], bp
mov word [ecx + 8], dx
movzx ax, byte [esp + eax + 0x27e]
sub si, ax
add si, 0xff
movsx edx, si
movsx si, byte [esp + edx + 0x7c]
movsx ax, byte [esp + edx + 0x77c]
movsx bp, byte [esp + edx + 0x97c]
add word [ecx - 2], ax
mov ax, word [esp + 0x24]
movsx dx, byte [esp + edx + 0xb7c]
add word [ecx + 4], bp
mov word [ecx + 0xa], dx
cmp ax, word [esp + 0x1e]
jl 0x48d1a1
cmp word [esp + 0x18], 4
jne 0x48d66c
cmp dword [esp + 0xe8c], 4
jne 0x48d66c
mov byte [esp + 0x13], 1
mov word [esp + 0x1c], 0
cmp word [esp + 0x1e], 0
jle 0x48d66c
mov ax, word [esp + 0x1e]
mov word [esp + 0x28], ax
add word [esp + 0x1a], 3
mov eax, dword [esp + 0x1a]
and eax, 0xffff
add eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
add eax, ebp
add di, word [eax]
add bx, word [eax + 2]
add si, word [eax + 4]
cmp byte [esp + 0xe9c], 0
je 0x48d469
movsx edi, di
movsx ebx, bx
movsx esi, si
lea edi, [edi + edi*2]
lea ebx, [ebx + ebx*2]
shr edi, 2
lea esi, [esi + esi*2]
shr ebx, 2
shr esi, 2
cmp byte [esp + 0x13], 0
je 0x48d485
mov edx, dword [esp + 0x20]
movsx eax, word [esp + 0x1c]
mov al, byte [eax + edx]
shr al, 4
movzx ax, al
jmp 0x48d498
movsx ecx, word [esp + 0x1c]
xor ax, ax
mov edx, dword [esp + 0x20]
mov al, byte [ecx + edx]
and ax, 0xf
shl ax, 2
mov edx, dword [esp + 0x30]
movsx ebp, ax
inc ax
movzx cx, byte [ebp + edx]
add di, cx
movsx ebp, ax
movzx cx, byte [ebp + edx]
add bx, cx
inc ax
movsx ecx, ax
movzx ax, byte [ecx + edx]
add si, ax
test di, di
jge 0x48d4d1
xor di, di
jmp 0x48d4dc
cmp di, 0xff
jle 0x48d4dc
mov di, 0xff
test bx, bx
jge 0x48d4e6
xor bx, bx
jmp 0x48d4f1
cmp bx, 0xff
jle 0x48d4f1
mov bx, 0xff
test si, si
jge 0x48d4fb
xor si, si
jmp 0x48d506
cmp si, 0xff
jle 0x48d506
mov si, 0xff
cmp dword [esp + 0x38], 0
je 0x48d53d
mov cx, si
and cx, 0xf8
shl cx, 5
mov ax, bx
and ax, 0xf8
or cx, ax
shl cx, 2
mov ax, di
shr ax, 3
or cx, ax
mov eax, dword [esp + 0x38]
movsx edx, cx
mov al, byte [edx + eax]
jmp 0x48d550
lea eax, [esp + 0x27c]
push eax
push edi
push ebx
push esi
call fcn.0048d800
add esp, 0x10
cmp byte [esp + 0x13], 0
je 0x48d578
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x44], al
shl byte [esp + 0x44], 4
movsx ebp, word [esp + 0x1c]
mov byte [esp + 0x13], 0
mov dl, byte [esp + 0x44]
mov byte [ebp + ecx], dl
jmp 0x48d58e
movsx edx, word [esp + 0x1c]
inc word [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x13], 1
add byte [edx + ecx], al
xor ecx, ecx
mov ebp, dword [esp + 0x24]
mov cl, al
lea edx, [ecx + ecx*2]
mov ecx, dword [esp + 0x54]
movzx ax, byte [esp + edx + 0x27c]
sub di, ax
add ecx, ebp
add di, 0xff
movsx eax, di
movsx di, byte [esp + eax + 0x7c]
movsx bp, byte [esp + eax + 0x77c]
add word [ecx - 6], bp
movsx bp, byte [esp + eax + 0x97c]
movsx ax, byte [esp + eax + 0xb7c]
add word [ecx], bp
mov word [ecx + 6], ax
movzx ax, byte [esp + edx + 0x27d]
sub bx, ax
add bx, 0xff
movsx eax, bx
movsx bx, byte [esp + eax + 0x7c]
movsx bp, byte [esp + eax + 0x77c]
add word [ecx - 4], bp
movsx bp, byte [esp + eax + 0x97c]
movsx ax, byte [esp + eax + 0xb7c]
add word [ecx + 2], bp
mov word [ecx + 8], ax
movzx dx, byte [esp + edx + 0x27e]
sub si, dx
add si, 0xff
movsx edx, si
movsx si, byte [esp + edx + 0x7c]
movsx ax, byte [esp + edx + 0x77c]
movsx bp, byte [esp + edx + 0x97c]
movsx dx, byte [esp + edx + 0xb7c]
add word [ecx - 2], ax
add word [ecx + 4], bp
mov word [ecx + 0xa], dx
dec word [esp + 0x28]
jne 0x48d41a
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
dec word [esp + 0x14]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
sub dword [esp + 0x3c], eax
sub dword [esp + 0x64], ecx
cmp word [esp + 0x14], 0xffff
jg 0x48b996
cmp dword [esp + 0xe80], 0
je 0x48d6c8
mov eax, dword [esp + 0xe80]
push 0
push 0x64
push 0x401
push eax
call dword [case.0x427228.0]
mov eax, dword [esp + 0xe84]
push eax
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
push ecx
call dword [0x4c2590]
mov eax, dword [esp + 0x50]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x50]
mov esi, dword [0x4c2594]
push eax
call esi
mov ecx, dword [esp + 0x58]
push ecx
call dword [0x4c2590]
mov eax, dword [esp + 0x58]
push eax
call esi
mov eax, dword [esp + 0x60]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x60]
push eax
call esi
mov eax, dword [esp + 0x68]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x68]
push eax
call esi
cmp dword [esp + 0x34], 0
je 0x48d748
mov eax, dword [esp + 0x34]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x34]
push eax
call esi
mov eax, dword [esp + 0xe88]
mov ecx, dword [esp + 0x40]
pop ebp
pop edi
pop esi
mov dword [eax], ecx
xor ax, ax
pop ebx
add esp, 0xe6c
ret
mov eax, dword [esp + 0xe84]
push eax
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
push ecx
call dword [0x4c2590]
mov ecx, dword [esp + 0x40]
mov esi, dword [0x4c2594]
push ecx
call esi
mov ecx, dword [esp + 0x50]
push ecx
call dword [0x4c2590]
mov eax, dword [esp + 0x50]
push eax
call esi
mov eax, dword [esp + 0x58]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x58]
push eax
call esi
mov eax, dword [esp + 0x60]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x60]
push eax
call esi
mov eax, dword [esp + 0x68]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x68]
push eax
call esi
cmp dword [esp + 0x34], 0
je 0x48d7ea
mov eax, dword [esp + 0x34]
push eax
call dword [0x4c2590]
mov eax, dword [esp + 0x34]
push eax
call esi
mov ax, 0x64
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xe6c
ret