Function at 0x42ba70
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Encrypt data using speck

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x1c]
push ebx
push ebp
push esi
push edi
xor edi, edi
cmp eax, 0x8000
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], edi
jl 0x42baa3
add eax, 0xffff8000
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*8]
lea edx, [eax + ecx*8]
lea esi, [edx*4 + 0x5a4ee0]
jmp 0x42baa5
xor esi, esi
mov edx, dword [esp + 0x30]
cmp edx, edi
jle 0x42bac2
mov eax, dword [0x58a8a0]
mov ebp, edx
shl ebp, 7
add ebp, eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x1c], eax
jmp 0x42baec
cmp edx, 0xffffc000
jge 0x42bad3
mov eax, 0xffffc000
sub eax, edx
jmp 0x42bad7
mov eax, edx
neg eax
mov ebp, dword [0x58a8a0]
mov dword [esp + 0x1c], eax
mov ecx, 0x20
xor eax, eax
mov edi, ebp
rep stosd dword es:[edi], eax
mov ebx, dword [esp + 0x28]
mov ecx, dword [0x58a8a0]
shl ebx, 7
mov dword [esp + 0x14], ebx
add ebx, ecx
cmp byte [ebx + 0x41], 3
je 0x42dd1c
mov al, byte [ebx + 0x3d]
mov edi, 0x80000
and al, 4
cmp al, 4
jne 0x42bcbf
mov eax, dword [ebp + 0x68]
test al, 6
jne 0x42bcaa
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x20], 1
test eax, eax
je 0x42bb3f
cmp dword [ebp + 0x78], 7
jbe 0x42bcbf
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x1c]
sub edx, eax
mov dword [ebp + 0xc], edx
mov dl, byte [ebp + 0x45]
neg eax
neg ecx
neg dl
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x1c], ecx
mov byte [ebp + 0x45], dl
mov eax, dword [0x6087b0]
mov cl, al
sub al, 0x2c
add cl, 4
and eax, 0xff
and ecx, 0xff
mov eax, dword [eax + 0x608a20]
mov dword [0x6087b0], ecx
mov edx, dword [ecx + 0x608a20]
xor edx, eax
and eax, 0x7fff
sub eax, 0x3fff
mov dword [ecx + 0x608a20], edx
mov edx, dword [ebp + 0x18]
shl eax, 4
sub eax, edx
cmp eax, 0xfff80000
mov dword [ebp + 0x18], eax
jge 0x42bbb5
mov dword [ebp + 0x18], 0xfff80000
jmp 0x42bbbd
cmp dword [ebp + 0x18], edi
jle 0x42bbbd
mov dword [ebp + 0x18], edi
mov ecx, dword [0x6087b0]
xor edi, edi
mov al, cl
sub cl, 0x2c
add al, 4
and ecx, 0xff
and eax, 0xff
mov ecx, dword [ecx + 0x608a20]
mov dword [0x6087b0], eax
mov edx, dword [eax + 0x608a20]
xor edx, ecx
and ecx, 7
add ecx, 8
mov dword [eax + 0x608a20], edx
test ecx, ecx
jle 0x42bc4d
movsx edx, byte [ebp + 0x45]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
neg edx
push edx
push eax
push ecx
call fcn.0046f790
mov ecx, dword [0x6087b0]
add esp, 0xc
mov al, cl
sub cl, 0x2c
add al, 4
and ecx, 0xff
and eax, 0xff
inc edi
mov ecx, dword [ecx + 0x608a20]
mov dword [0x6087b0], eax
mov edx, dword [eax + 0x608a20]
xor edx, ecx
and ecx, 7
add ecx, 8
mov dword [eax + 0x608a20], edx
cmp edi, ecx
jl 0x42bbfa
mov dl, al
sub al, 0x2c
add dl, 4
and eax, 0xff
and edx, 0xff
push 0
mov eax, dword [eax + 0x608a20]
mov ecx, edx
mov dword [0x6087b0], ecx
push 0
mov edx, dword [ecx + 0x608a20]
xor edx, eax
and eax, 3
mov dword [ecx + 0x608a20], edx
mov ecx, dword [ebx + 0x10]
mov eax, dword [eax*4 + 0x4ca5c0]
mov edx, dword [ebx + 0xc]
push eax
push ecx
push edx
call fcn.00478870
mov eax, dword [ebp + 0x74]
add esp, 0x14
inc eax
mov dword [ebp + 0x78], 0
mov dword [ebp + 0x74], eax
jmp 0x42bcbf
test al, 4
jne 0x42bcbf
test edx, edx
jle 0x42bcbf
mov eax, dword [esp + 0x30]
push eax
call fcn.0042ffb0
add esp, 4
mov dl, byte [ebx + 0x3d]
and dl, 3
cmp dl, 1
je 0x42dd1c
cmp dl, 2
jne 0x42bcdf
mov byte [ebp + 0x41], 0xa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov al, byte [ebx + 0x3e]
test al, al
jle 0x42becb
cmp dl, 3
je 0x42becb
mov cl, byte [ebx + 0x3a]
test cl, cl
jbe 0x42bdf4
mov ecx, dword [esp + 0x1c]
cmp ecx, 3
jle 0x42bd0b
sub al, cl
jmp 0x42bd0d
sub al, 3
test al, al
mov byte [ebx + 0x3e], al
mov byte [ebx + 0x3a], 0
mov byte [ebx + 0x46], 5
jg 0x42becb
mov edi, dword [esp + 0x28]
push 0
push edi
mov byte [ebx + 0x3e], 0
call section..text
mov eax, dword [esp + 0x34]
add esp, 8
cmp eax, 0x8000
mov byte [ebx + 0x41], 3
jl 0x42becb
cmp eax, 0x8020
jg 0x42becb
cmp edi, dword [0x5fccfc]
jge 0x42becb
mov edi, dword [esp + 0x14]
mov ecx, dword [0x58a8a0]
mov cx, word [edi + ecx + 0x42]
test cx, cx
jbe 0x42becb
mov edx, dword [0x5a4b68]
cmp edx, 2
je 0x42becb
cmp edx, 3
je 0x42becb
cmp edx, 5
je 0x42becb
cmp edx, 4
je 0x42becb
add eax, 0xffff8000
and ecx, 0xffff
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax*4 + 0x5a52a8]
add edx, ecx
xor ecx, ecx
mov dword [eax*4 + 0x5a52a8], edx
mov eax, dword [0x58a8a0]
mov cx, word [edi + eax + 0x42]
mov edx, dword [edi + eax + 0x10]
mov eax, dword [edi + eax + 0xc]
push ecx
push edx
push eax
call fcn.0046f940
mov ecx, dword [0x58a8a0]
add esp, 0xc
mov word [edi + ecx + 0x42], 0
jmp 0x42becb
mov dl, byte [esp + 0x1c]
mov byte [ebx + 0x46], 5
sub al, dl
test al, al
mov byte [ebx + 0x3e], al
jg 0x42becb
mov eax, dword [esp + 0x2c]
mov byte [ebx + 0x3e], 0
cmp eax, 0x8000
mov byte [ebx + 0x41], 3
mov dword [esp + 0x10], 1
jl 0x42becb
cmp eax, 0x8020
jg 0x42becb
mov edx, dword [0x5fccfc]
mov eax, dword [esp + 0x28]
cmp eax, edx
jge 0x42becb
mov eax, dword [esp + 0x14]
mov ecx, dword [0x58a8a0]
mov dx, word [eax + ecx + 0x42]
lea edi, [eax + ecx + 0x42]
test dx, dx
jbe 0x42becb
mov eax, dword [0x5a4b68]
cmp eax, 2
je 0x42becb
cmp eax, 3
je 0x42becb
cmp eax, 5
je 0x42becb
cmp eax, 4
je 0x42becb
mov eax, dword [esp + 0x2c]
and edx, 0xffff
add eax, 0xffff8000
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*8]
lea eax, [eax + ecx*8]
mov ecx, dword [eax*4 + 0x5a52a8]
add ecx, edx
xor edx, edx
mov dword [eax*4 + 0x5a52a8], ecx
mov dx, word [edi]
mov edi, dword [esp + 0x14]
mov eax, dword [0x58a8a0]
push edx
mov ecx, dword [edi + eax + 0x10]
mov edx, dword [edi + eax + 0xc]
push ecx
push edx
call fcn.0046f940
mov eax, dword [0x58a8a0]
add esp, 0xc
mov word [edi + eax + 0x42], 0
mov eax, dword [ebp + 0x5c]
mov edi, 8
cmp eax, edi
jne 0x42bedf
mov dword [esp + 0x20], 1
mov cl, byte [ebx + 0x40]
and cl, 0xf
cmp cl, 8
jne 0x42da80
xor eax, eax
xor ecx, ecx
mov al, byte [ebx + 0x44]
mov dword [esp + 0x18], ecx
add eax, 0xffffffe5
cmp eax, 0xd0
ja case.0x42bf0f.81
xor edx, edx
mov dl, byte [eax + 0x42de00]
jmp dword [edx*4 + 0x42dd24]
cmp dword [ebx + 0x54], ecx
jne case.0x42bf0f.81
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebx + 0x5c]
imul eax, dword [esp + 0x1c]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add ecx, eax
mov dword [ebx + 0x5c], ecx
jmp case.0x42bf0f.81
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x1c]
imul eax, ecx
mov esi, dword [ebx + 0x5c]
cdq
and edx, 0xff
add eax, edx
mov dl, byte [ebx + 0x3e]
sar eax, 8
sub dl, cl
add esi, eax
mov al, dl
mov dword [ebx + 0x5c], esi
test al, al
mov byte [ebx + 0x3e], dl
jg case.0x42bf0f.81
mov byte [ebx + 0x41], 3
jmp case.0x42bf0f.81
mov al, byte [ebp + 0x44]
cmp al, 0x1a
je 0x42bf92
cmp al, 0x2b
je 0x42bf92
cmp dword [esp + 0x30], 0xffffc000
jge 0x42c87f
cmp byte [ebx + 0x41], 1
jne 0x42c87f
mov byte [ebx + 0x3e], 0
mov byte [ebx + 0x41], 3
mov dword [esp + 0x20], 1
jmp case.0x42bf0f.81
cmp byte [ebx + 0x41], 0x11
je 0x42dd1c
mov eax, dword [ebx + 8]
push 4
cdq
and edx, 0x1fffff
push 0xf
add eax, edx
sar eax, 0x15
push eax
mov eax, dword [ebx + 4]
cdq
and edx, 0x1fffff
add eax, edx
sar eax, 0x15
push eax
call fcn.00429bc0
xor edi, edi
add esp, 0x10
cmp eax, edi
jne 0x42c002
mov edx, dword [0x54f864]
xor ecx, ecx
mov cx, word [ebx + 0x34]
inc edx
cmp ecx, edx
jne 0x42c0c6
cmp byte [ebp + 0x44], 0x1a
je 0x42c0c6
mov ecx, dword [esp + 0x30]
cmp ecx, 0xffffc000
jl 0x42c0c6
cmp ecx, edi
jle 0x42c2e2
cmp eax, dword [ebp + 0x5c]
jne 0x42c2e2
mov al, byte [esp + 0x1c]
mov cl, byte [ebx + 0x3e]
sub cl, al
mov al, cl
mov byte [ebx + 0x3e], cl
test al, al
jle 0x42c04f
mov byte [ebx + 0x41], 0xe
mov byte [ebp + 0x41], 0xa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x2c]
mov byte [ebx + 0x41], 3
cmp eax, 0x8000
jl 0x42c2e2
cmp eax, 0x8020
jg 0x42c2e2
mov ecx, dword [esp + 0x28]
mov edx, dword [0x5fccfc]
cmp ecx, edx
jge 0x42c2e2
mov ebx, dword [0x58a8a0]
mov esi, dword [esp + 0x14]
mov cx, word [esi + ebx + 0x42]
cmp cx, di
jbe 0x42c2e2
mov edx, dword [0x5a4b68]
cmp edx, 2
je 0x42c2e2
cmp edx, 3
je 0x42c2e2
cmp edx, 5
je 0x42c2e2
cmp edx, 4
je 0x42c2e2
jmp 0x42c15a
mov cl, byte [esp + 0x1c]
mov dl, byte [ebx + 0x3e]
sub dl, cl
mov al, dl
mov byte [ebx + 0x3e], dl
test al, al
jle 0x42c0e8
mov byte [ebx + 0x41], 0xe
mov byte [ebp + 0x41], 0xa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x2c]
mov byte [ebx + 0x41], 3
cmp eax, 0x8000
jl 0x42c2e2
cmp eax, 0x8020
jg 0x42c2e2
mov edx, dword [esp + 0x28]
mov ecx, dword [0x5fccfc]
cmp edx, ecx
jge 0x42c2e2
mov ebx, dword [0x58a8a0]
mov esi, dword [esp + 0x14]
mov cx, word [esi + ebx + 0x42]
cmp cx, di
jbe 0x42c2e2
mov edx, dword [0x5a4b68]
cmp edx, 2
je 0x42c2e2
cmp edx, 3
je 0x42c2e2
cmp edx, 5
je 0x42c2e2
cmp edx, 4
je 0x42c2e2
add eax, 0xffff8000
and ecx, 0xffff
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax*4 + 0x5a52a8]
add edx, ecx
mov dword [eax*4 + 0x5a52a8], edx
mov ecx, dword [esi + ebx + 0x10]
mov edx, dword [esi + ebx + 0xc]
xor eax, eax
mov ax, word [esi + ebx + 0x42]
push eax
push ecx
push edx
call fcn.0046f940
mov eax, dword [0x58a8a0]
add esp, 0xc
mov word [esi + eax + 0x42], di
mov byte [ebp + 0x41], 0xa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
cmp byte [ebx + 0x41], 0x11
je 0x42dd1c
mov al, byte [ebp + 0x44]
cmp al, 0x2b
je 0x42c1d1
cmp al, 0x1a
je 0x42c1d1
cmp dword [esp + 0x30], 0xffffc000
jge 0x42c2e2
mov cl, byte [ebx + 0x3e]
dec cl
mov al, cl
mov byte [ebx + 0x3e], cl
test al, al
jle 0x42c1ef
mov byte [ebx + 0x41], 0xe
mov byte [ebp + 0x41], 0xa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x2c]
mov byte [ebx + 0x41], 3
cmp eax, 0x8000
jl 0x42c2e2
cmp eax, 0x8020
jg 0x42c2e2
mov ecx, dword [esp + 0x28]
mov edx, dword [0x5fccfc]
cmp ecx, edx
jge 0x42c2e2
mov ebx, dword [0x58a8a0]
mov esi, dword [esp + 0x14]
mov cx, word [esi + ebx + 0x42]
test cx, cx
jbe 0x42c2e2
mov edx, dword [0x5a4b68]
cmp edx, 2
je 0x42c2e2
cmp edx, 3
je 0x42c2e2
cmp edx, 5
je 0x42c2e2
cmp edx, 4
je 0x42c2e2
add eax, 0xffff8000
and ecx, 0xffff
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax*4 + 0x5a52a8]
add edx, ecx
mov dword [eax*4 + 0x5a52a8], edx
mov ecx, dword [esi + ebx + 0x10]
mov edx, dword [esi + ebx + 0xc]
xor eax, eax
mov ax, word [esi + ebx + 0x42]
push eax
push ecx
push edx
call fcn.0046f940
mov eax, dword [0x58a8a0]
add esp, 0xc
mov word [esi + eax + 0x42], 0
mov byte [ebp + 0x41], 0xa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov al, byte [ebp + 0x44]
cmp al, 0x2b
je 0x42c2d0
cmp al, 0x1a
je 0x42c2d0
cmp dword [esp + 0x30], 0xffffc000
jge 0x42dd1c
cmp byte [ebx + 0x41], 1
jne 0x42c2e2
cmp dword [ebx + 0x24], ecx
jne 0x42c2e2
mov dword [ebx + 0x24], 1
mov byte [ebp + 0x41], 0xa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov byte [ebx + 0x41], 0x10
mov byte [ebx + 0x3d], 1
mov dword [esp + 0x18], 0x6a
jmp case.0x42bf0f.81
mov ecx, dword [ebp + 0x68]
and ecx, 2
cmp cl, 2
jne case.0x42bf0f.81
mov byte [ebx + 0x3a], 0
mov byte [ebx + 0x3d], 1
jmp case.0x42bf0f.81
cmp byte [ebx + 0x41], 0xa
je case.0x42bf0f.81
mov dword [ebx + 0x24], ecx
mov byte [ebx + 0x41], 0xa
mov dword [esp + 0x10], ecx
jmp case.0x42bf0f.81
mov edx, dword [esp + 0x2c]
cmp edx, 0x8000
jl case.0x42bf0f.81
mov eax, dword [ebx + 0x5c]
cmp byte [eax + esi + 0x428], 0
jne 0x42c3b7
mov byte [eax + esi + 0x428], 1
mov dword [esi + 0x148], eax
cmp dword [esi + eax*4 + 0x400], ecx
jne 0x42c378
mov dword [esi + eax*4 + 0x400], 0x14
push 1
push edx
call fcn.0043cdc0
shl eax, 7
add esi, eax
add esp, 8
mov dword [esi + 0x1c8], 1
mov edx, dword [0x5d166c]
lea eax, [esi + 0x1dc]
push edx
push eax
call fcn.004b77e0
add esp, 8
mov dword [esi + 0x1cc], 0
jmp 0x42c4ae
mov edi, dword [esi + eax*4 + 0x400]
add edi, 0x14
mov dword [esi + eax*4 + 0x400], edi
mov edx, dword [0x5a4b68]
cmp edx, 1
mov ecx, edi
jle 0x42c4ae
cmp ecx, 0x32
jle 0x42c4ae
mov dword [esi + eax*4 + 0x400], 0x32
mov dword [esp + 0x10], 2
mov dword [esp + 0x18], 0x6a
mov byte [ebx + 0x3d], 1
jmp case.0x42bf0f.81
mov eax, dword [esp + 0x2c]
cmp eax, 0x8000
jl case.0x42bf0f.81
mov dl, byte [esi + 0x42d]
test dl, dl
jne 0x42c47e
mov byte [esi + 0x42d], 1
mov dword [esi + 0x148], 5
cmp dword [esi + 0x414], ecx
jne 0x42c442
mov dword [esi + 0x414], 0x280
push 1
push eax
call fcn.0043cdc0
shl eax, 7
add esi, eax
add esp, 8
mov dword [esi + 0x1c8], 1
mov ecx, dword [0x5d166c]
lea edx, [esi + 0x1dc]
push ecx
push edx
call fcn.004b77e0
add esp, 8
mov dword [esi + 0x1cc], 0
jmp 0x42c4ae
mov edx, dword [esi + 0x414]
add edx, 0x280
mov dword [esi + 0x414], edx
mov ecx, dword [0x5a4b68]
cmp ecx, 1
mov eax, edx
jle 0x42c4ae
cmp eax, 0x640
jle 0x42c4ae
mov dword [esi + 0x414], 0x640
mov dword [esp + 0x10], 2
mov dword [esp + 0x18], 0x6a
mov byte [ebx + 0x3d], 1
jmp case.0x42bf0f.81
cmp byte [ebx + 0x41], 1
jne 0x42c87f
mov byte [ebx + 0x41], 0x1d
mov dword [esp + 0x20], 1
jmp case.0x42bf0f.81
cmp dword [esp + 0x30], ecx
jle case.0x42bf0f.81
test byte [ebp + 0x68], 6
je case.0x42bf0f.81
mov al, byte [ebx + 0x3a]
test al, al
jbe case.0x42bf0f.81
mov byte [ebx + 0x3a], 0
jmp case.0x42bf0f.81
mov eax, dword [0x6087b0]
mov esi, dword [esp + 0x30]
mov cl, al
add al, 4
sub cl, 0x2c
and eax, 0xff
and ecx, 0xff
mov edi, dword [eax + 0x608a20]
mov ecx, dword [ecx + 0x608a20]
xor edi, ecx
and ecx, 1
inc ecx
mov dword [eax + 0x608a20], edi
mov dword [esp + 0x1c], ecx
jmp 0x42c548
mov eax, dword [0x6087b0]
mov dl, al
add al, 4
sub dl, 0x2c
and eax, 0xff
and edx, 0xff
mov ecx, eax
mov dword [0x6087b0], ecx
push 0
mov eax, dword [edx + 0x608a20]
mov edx, dword [ecx + 0x608a20]
xor edx, eax
and eax, 0x7fff
mov dword [ecx + 0x608a20], edx
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
push 0x16
shl eax, 5
sub ecx, eax
push ecx
push edx
call fcn.0042feb0
add esp, 0x10
test eax, eax
jle 0x42c753
mov ecx, dword [0x58a8a0]
shl eax, 7
add eax, ecx
mov ecx, eax
test esi, esi
mov dword [ecx], 0x4030e0
mov ax, word [0x54f93c]
mov word [ecx + 0x34], ax
mov eax, dword [0x6087b0]
mov dl, al
jle 0x42c60c
sub dl, 0x2c
add al, 4
and edx, 0xff
and eax, 0xff
mov edi, edx
mov edx, eax
mov dword [0x6087b0], edx
mov eax, dword [edi + 0x608a20]
mov edi, dword [edx + 0x608a20]
xor edi, eax
and eax, 0x7fff
mov dword [edx + 0x608a20], edi
movsx edx, byte [ebp + 0x45]
imul eax, edx
shl eax, 4
mov dword [ecx + 0x14], eax
mov al, byte [ebp + 0x45]
mov byte [ecx + 0x45], al
jmp 0x42c64a
sub dl, 0x2c
add al, 4
and edx, 0xff
and eax, 0xff
mov edi, edx
mov edx, eax
mov dword [0x6087b0], edx
mov eax, dword [edi + 0x608a20]
mov edi, dword [edx + 0x608a20]
xor edi, eax
and eax, 0x7fff
sub eax, 0x3fff
mov dword [edx + 0x608a20], edi
shl eax, 4
mov dword [ecx + 0x14], eax
mov eax, dword [0x6087b0]
mov dl, al
add al, 4
sub dl, 0x2c
and eax, 0xff
and edx, 0xff
mov edi, edx
mov edx, eax
mov dword [0x6087b0], edx
mov eax, dword [edi + 0x608a20]
mov edi, dword [edx + 0x608a20]
xor edi, eax
and eax, 0x7fff
sub eax, 0x4000
mov dword [edx + 0x608a20], edi
shl eax, 4
mov dword [ecx + 0x18], eax
mov eax, dword [0x6087b0]
mov dl, al
add al, 4
sub dl, 0x2c
and eax, 0xff
and edx, 0xff
mov dword [0x6087b0], eax
mov edi, dword [eax + 0x608a20]
mov edx, dword [edx + 0x608a20]
xor edi, edx
mov dword [eax + 0x608a20], edi
xor eax, eax
mov ax, word [ecx + 0x34]
xor edi, edi
mov di, word [eax*8 + 0x54f9c0]
mov eax, edx
and eax, 0x1f
mov byte [ecx + 0x41], 0x10
cdq
idiv edi
mov byte [ecx + 0x3c], dl
mov eax, dword [0x6087b0]
mov dl, al
add al, 4
sub dl, 0x2c
and eax, 0xff
and edx, 0xff
mov dword [0x6087b0], eax
mov edi, dword [eax + 0x608a20]
mov edx, dword [edx + 0x608a20]
xor edi, edx
mov dword [eax + 0x608a20], edi
mov eax, edx
and eax, 3
cmp eax, 6
ja case.0x42c718.5
jmp dword [eax*4 + 0x42ded4]
mov dword [ecx + 0x64], 0x186
jmp 0x42c753
mov dword [ecx + 0x64], 0x187
jmp 0x42c753
mov dword [ecx + 0x64], 0x188
jmp 0x42c753
mov dword [ecx + 0x64], 0x189
jmp 0x42c753
mov dword [ecx + 0x64], 0x18a
jmp 0x42c753
mov dword [ecx + 0x64], 0x18b
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x1c], eax
jns 0x42c543
jmp case.0x42bf0f.81
cmp byte [ebx + 0x41], 0x11
je case.0x42bf0f.81
mov dword [esp + 0x10], 2
mov byte [ebx + 0x41], 0x10
mov byte [ebx + 0x3d], 1
jmp case.0x42bf0f.81
mov eax, dword [esp + 0x2c]
mov byte [ebx + 0x41], 0x10
cmp eax, 0x8000
mov dword [esp + 0x10], ecx
mov byte [ebx + 0x3d], 1
jl case.0x42bf0f.81
cmp eax, 0x8020
jg case.0x42bf0f.81
mov ecx, dword [esp + 0x28]
mov edx, dword [0x5fccfc]
cmp ecx, edx
jge case.0x42bf0f.81
mov esi, dword [esp + 0x14]
mov edx, dword [0x58a8a0]
mov cx, word [esi + edx + 0x42]
lea edi, [esi + edx + 0x42]
test cx, cx
jbe case.0x42bf0f.81
mov edx, dword [0x5a4b68]
cmp edx, 2
je case.0x42bf0f.81
cmp edx, 3
je case.0x42bf0f.81
cmp edx, 5
je case.0x42bf0f.81
cmp edx, 4
je case.0x42bf0f.81
add eax, 0xffff8000
and ecx, 0xffff
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax*4 + 0x5a52a8]
add edx, ecx
mov dword [eax*4 + 0x5a52a8], edx
xor eax, eax
mov ax, word [edi]
push eax
mov eax, dword [0x58a8a0]
mov ecx, dword [esi + eax + 0x10]
mov edx, dword [esi + eax + 0xc]
push ecx
push edx
call fcn.0046f940
mov eax, dword [0x58a8a0]
add esp, 0xc
mov word [esi + eax + 0x42], 0
jmp case.0x42bf0f.81
mov eax, dword [esp + 0x2c]
cmp eax, 0x8000
jl case.0x42bf0f.81
cmp dword [esi + 0x134], ecx
je 0x42c88c
cmp dword [ebx + 0x50], 0xffffffff
jne case.0x42bf0f.81
mov byte [ebx + 0x41], 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], 1
jmp case.0x42bf0f.81
cmp byte [ebx + 0x41], 1
jne case.0x42bf0f.81
cmp eax, 0x8020
jg 0x42c93e
mov ecx, dword [0x5fccfc]
mov eax, dword [esp + 0x28]
cmp eax, ecx
jge 0x42c93e
mov edi, dword [esp + 0x14]
mov edx, dword [0x58a8a0]
mov cx, word [edi + edx + 0x42]
lea eax, [edi + edx + 0x42]
test cx, cx
mov dword [esp + 0x1c], eax
jbe 0x42c93e
mov eax, dword [0x5a4b68]
cmp eax, 2
je 0x42c93e
cmp eax, 3
je 0x42c93e
cmp eax, 5
je 0x42c93e
cmp eax, 4
je 0x42c93e
mov eax, dword [esp + 0x2c]
and ecx, 0xffff
add eax, 0xffff8000
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax*4 + 0x5a52a8]
add edx, ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax*4 + 0x5a52a8], edx
xor eax, eax
mov ax, word [ecx]
push eax
mov eax, dword [0x58a8a0]
mov edx, dword [edi + eax + 0x10]
mov eax, dword [edi + eax + 0xc]
push edx
push eax
call fcn.0046f940
mov ecx, dword [0x58a8a0]
add esp, 0xc
mov word [edi + ecx + 0x42], 0
mov edx, dword [esp + 0x2c]
mov byte [ebx + 0x3d], 1
mov byte [ebx + 0x41], 0x10
mov dword [ebx + 0x50], edx
mov dword [esi + 0x134], 1
mov dword [esp + 0x10], 0
jmp case.0x42bf0f.81
cmp dword [esp + 0x2c], 0x8000
jl 0x42d91b
cmp dword [0x5a4b68], 4
jne 0x42c9b5
mov eax, dword [esi + 0x3d8]
mov edx, dword [0x5d01d0]
cmp eax, edx
jl case.0x42bf0f.81
cmp dword [esi + 0x534], ecx
jne 0x42c9a3
mov edx, dword [0x58a5a0]
mov dword [esi + 0x534], edx
cmp dword [esi + 0x54c], ecx
jne 0x42c9b5
mov dword [esi + 0x54c], 1
mov byte [ebx + 0x41], 0x10
mov eax, dword [0x5d01c4]
cmp eax, ecx
jne 0x42d91b
mov al, byte [esi + 0x3e]
test al, al
jle 0x42ca25
mov eax, dword [esi + 0x1a0]
test eax, eax
jle 0x42ca25
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x42ca00
mov edi, 0x547393
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x5d0204
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x42ca20
mov edi, 0x547373
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x5d0204
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, 1
xor ecx, ecx
mov dword [0x5d01c4], eax
mov dword [0x5d01c8], eax
mov dword [esp + 0x10], ecx
jmp case.0x42bf0f.81
cmp dword [esp + 0x2c], 0x8000
jl 0x42d91b
mov byte [ebx + 0x41], 0x10
mov eax, dword [0x5d01c4]
cmp eax, ecx
jne 0x42d91b
mov al, byte [esi + 0x3e]
test al, al
jle 0x42ca94
cmp dword [esi + 0x1a0], ecx
jle 0x42ca94
mov edi, 0x547393
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x5d0204
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
mov eax, 1
mov dword [esp + 0x10], ecx
mov dword [0x5d01c4], eax
mov dword [0x5d01c8], eax
jmp case.0x42bf0f.81
mov al, byte [ebx + 0x41]
cmp al, 1
je 0x42cac8
cmp dword [0x5a4b68], 1
jne 0x42d91b
cmp al, 0x11
jne 0x42d91b
mov eax, dword [esp + 0x2c]
cmp eax, 0x8000
jl 0x42cb79
cmp eax, 0x8020
jg 0x42cb79
mov edx, dword [0x5fccfc]
mov esi, dword [esp + 0x28]
cmp esi, edx
jge 0x42cb79
mov esi, dword [esp + 0x14]
mov ecx, dword [0x58a8a0]
lea edi, [esi + ecx + 0x42]
mov cx, word [esi + ecx + 0x42]
test cx, cx
jbe 0x42cb77
mov edx, dword [0x5a4b68]
cmp edx, 2
je 0x42cb77
cmp edx, 3
je 0x42cb77
cmp edx, 5
je 0x42cb77
cmp edx, 4
je 0x42cb77
add eax, 0xffff8000
and ecx, 0xffff
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax*4 + 0x5a52a8]
add edx, ecx
mov dword [eax*4 + 0x5a52a8], edx
xor eax, eax
mov ax, word [edi]
push eax
mov eax, dword [0x58a8a0]
mov ecx, dword [esi + eax + 0x10]
mov edx, dword [esi + eax + 0xc]
push ecx
push edx
call fcn.0046f940
mov eax, dword [0x58a8a0]
add esp, 0xc
mov word [esi + eax + 0x42], 0
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov byte [ebx + 0x41], 0x10
mov dword [ebx + 0x4c], eax
mov byte [ebx + 0x3d], 3
mov dword [esp + 0x10], ecx
jmp case.0x42bf0f.81
cmp dword [esp + 0x2c], 0x8000
jl case.0x42bf0f.81
mov edx, dword [esi + 0xc]
push ecx
mov dword [esi + 0x148], ecx
push ecx
mov ecx, dword [esi + 0x10]
push 0x6a
push ecx
mov dword [esi + 0x470], 0xaf0
mov dword [esi + 0x46c], 1
mov dword [esp + 0x20], 2
push edx
jmp 0x42cc42
cmp dword [esp + 0x2c], 0x8000
jl case.0x42bf0f.81
mov eax, 2
push ecx
mov dword [esi + 0x46c], eax
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x148], ecx
push ecx
mov ecx, dword [esi + 0xc]
push 0x6a
push eax
mov dword [esi + 0x470], 0xaf0
push ecx
jmp 0x42cc42
cmp dword [esp + 0x2c], 0x8000
jl case.0x42bf0f.81
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
push ecx
push ecx
push 0x6a
push edx
mov dword [esi + 0x470], 0xaf0
mov dword [esi + 0x46c], 3
mov dword [esi + 0x148], ecx
mov dword [esp + 0x20], 2
push eax
call fcn.00478870
add esp, 0x14
mov dword [esp + 0x18], 0x98
jmp case.0x42bf0f.81
cmp dword [esp + 0x2c], 0x8000
jl case.0x42bf0f.81
mov dword [esi + 0x470], 0xaf0
mov dword [esi + 0x46c], 4
mov dword [esi + 0x148], ecx
mov dword [esp + 0x10], 2
mov dword [esp + 0x18], 0x6a
jmp case.0x42bf0f.81
cmp dword [esp + 0x30], ecx
jle case.0x42bf0f.81
test byte [ebp + 0x68], 6
jne case.0x42bf0f.81
mov edx, dword [ebx + 0x14]
mov eax, dword [ebp + 0x14]
mov ecx, edx
xor esi, esi
sub ecx, eax
cmp ecx, esi
jle 0x42ccbc
mov eax, ecx
jmp 0x42ccbe
sub eax, edx
cmp eax, 0x10000
jle 0x42ccc8
mov dword [ebx + 0x24], esi
mov byte [ebx + 0x3e], 3
mov ecx, dword [ebp + 0x14]
mov dword [ebx + 0x14], ecx
mov byte [ebx + 0x41], 0x10
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], 0x1b9
jmp case.0x42bf0f.81
cmp dword [ebp + 0x48], ecx
je case.0x42bf0f.81
cmp byte [ebx + 0x41], 0x11
jne 0x42ccfa
mov byte [ebx + 0x41], 8
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ebp + 0x48]
cdq
and edx, 7
add eax, edx
sar eax, 3
add ecx, eax
mov dword [ebx + 0x14], ecx
jns 0x42cd20
mov dword [ebx + 0x1c], 0xfffff000
jmp case.0x42bf0f.81
mov dword [ebx + 0x1c], 0x1000
jmp case.0x42bf0f.81
cmp dword [ebx + 0x5c], ecx
jne case.0x42bf0f.48
cmp byte [ebx + 0x41], 3
jne case.0x42bf0f.81
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], 0xffffffff
mov dword [ebx + 0x30], edx
jmp case.0x42bf0f.81
cmp dword [esp + 0x30], ecx
jle case.0x42bf0f.81
test byte [ebp + 0x68], 6
jne case.0x42bf0f.81
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x20], 1
cmp eax, ecx
je 0x42cd81
cmp dword [ebp + 0x78], 7
ja 0x42cd81
mov byte [ebp + 0x41], 0xa
jmp case.0x42bf0f.81
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
mov cl, byte [ebp + 0x45]
sub esi, eax
neg eax
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x1c]
neg eax
neg cl
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x1c], eax
mov byte [ebp + 0x45], cl
mov eax, dword [0x6087b0]
mov dl, al
add al, 4
sub dl, 0x2c
and eax, 0xff
and edx, 0xff
mov ecx, eax
mov dword [0x6087b0], ecx
mov eax, dword [edx + 0x608a20]
mov edx, dword [ecx + 0x608a20]
xor edx, eax
and eax, 0x7fff
sub eax, 0x3fff
mov dword [ecx + 0x608a20], edx
mov edx, dword [ebp + 0x18]
shl eax, 4
sub eax, edx
cmp eax, 0xfff80000
mov dword [ebp + 0x18], eax
jge 0x42cdf9
mov dword [ebp + 0x18], 0xfff80000
jmp 0x42ce08
mov ecx, dword [ebp + 0x18]
mov eax, 0x80000
cmp ecx, eax
jle 0x42ce08
mov dword [ebp + 0x18], eax
mov eax, dword [0x6087b0]
xor esi, esi
mov cl, al
add al, 4
sub cl, 0x2c
and eax, 0xff
and ecx, 0xff
mov dword [0x6087b0], eax
mov edi, dword [eax + 0x608a20]
mov ecx, dword [ecx + 0x608a20]
xor edi, ecx
and ecx, 7
add ecx, 8
mov dword [eax + 0x608a20], edi
test ecx, ecx
jle 0x42d535
movsx edx, byte [ebp + 0x45]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
neg edx
push edx
push eax
push ecx
call fcn.0046f790
mov eax, dword [0x6087b0]
add esp, 0xc
mov dl, al
add al, 4
sub dl, 0x2c
and eax, 0xff
and edx, 0xff
inc esi
mov edi, dword [eax + 0x608a20]
mov ecx, edx
mov dword [0x6087b0], eax
mov ecx, dword [ecx + 0x608a20]
xor edi, ecx
and ecx, 7
add ecx, 8
mov dword [eax + 0x608a20], edi
cmp esi, ecx
jl 0x42ce48
jmp 0x42d535
mov eax, dword [ebp + 0x68]
mov edx, eax
and edx, 4
cmp dl, 4
je 0x42d013
mov edx, dword [esp + 0x30]
cmp edx, 0xffffc000
jl 0x42d013
cmp edx, ecx
jle case.0x42bf0f.81
and eax, 2
cmp al, 2
je case.0x42bf0f.81
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x20], 1
cmp eax, ecx
je 0x42cef3
cmp dword [ebp + 0x78], 7
ja 0x42cef3
mov byte [ebp + 0x41], 0xa
jmp case.0x42bf0f.81
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
mov cl, byte [ebp + 0x45]
sub esi, eax
neg eax
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x1c]
neg eax
neg cl
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x1c], eax
mov byte [ebp + 0x45], cl
mov eax, dword [0x6087b0]
mov dl, al
add al, 4
sub dl, 0x2c
and eax, 0xff
and edx, 0xff
mov ecx, eax
mov dword [0x6087b0], ecx
mov eax, dword [edx + 0x608a20]
mov edx, dword [ecx + 0x608a20]
xor edx, eax
and eax, 0x7fff
sub eax, 0x3fff
mov dword [ecx + 0x608a20], edx
mov edx, dword [ebp + 0x18]
shl eax, 4
sub eax, edx
cmp eax, 0xfff80000
mov dword [ebp + 0x18], eax
jge 0x42cf6b
mov dword [ebp + 0x18], 0xfff80000
jmp 0x42cf7a
mov ecx, dword [ebp + 0x18]
mov eax, 0x80000
cmp ecx, eax
jle 0x42cf7a
mov dword [ebp + 0x18], eax
mov eax, dword [0x6087b0]
xor esi, esi
mov cl, al
add al, 4
sub cl, 0x2c
and eax, 0xff
and ecx, 0xff
mov dword [0x6087b0], eax
mov edi, dword [eax + 0x608a20]
mov ecx, dword [ecx + 0x608a20]
xor edi, ecx
and ecx, 7
add ecx, 8
mov dword [eax + 0x608a20], edi
test ecx, ecx
jle 0x42d535
movsx edx, byte [ebp + 0x45]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
neg edx
push edx
push eax
push ecx
call fcn.0046f790
mov eax, dword [0x6087b0]
add esp, 0xc
mov dl, al
add al, 4
sub dl, 0x2c
and eax, 0xff
and edx, 0xff
inc esi
mov edi, dword [eax + 0x608a20]
mov ecx, edx
mov dword [0x6087b0], eax
mov ecx, dword [ecx + 0x608a20]
xor edi, ecx
and ecx, 7
add ecx, 8
mov dword [eax + 0x608a20], edi
cmp esi, ecx
jl 0x42cfba
jmp 0x42d535
mov al, byte [ebx + 0x3a]
test al, al
jbe 0x42d034
mov esi, dword [esp + 0x28]
push 1
push esi
call section..text
add esp, 8
push esi
call fcn.0042ffb0
add esp, 4
jmp 0x42d03c
mov esi, dword [esp + 0x28]
mov byte [ebx + 0x41], 0x10
mov eax, dword [esp + 0x2c]
cmp eax, 0x8000
jl 0x42d0d6
cmp eax, 0x8020
jg 0x42d0d6
cmp esi, dword [0x5fccfc]
jge 0x42d0d6
mov esi, dword [0x58a8a0]
mov edi, dword [esp + 0x14]
mov cx, word [edi + esi + 0x42]
test cx, cx
jbe 0x42d0d6
mov edx, dword [0x5a4b68]
cmp edx, 2
je 0x42d0d6
cmp edx, 3
je 0x42d0d6
cmp edx, 5
je 0x42d0d6
cmp edx, 4
je 0x42d0d6
add eax, 0xffff8000
and ecx, 0xffff
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax*4 + 0x5a52a8]
add edx, ecx
mov dword [eax*4 + 0x5a52a8], edx
mov ecx, dword [edi + esi + 0x10]
mov edx, dword [edi + esi + 0xc]
xor eax, eax
mov ax, word [edi + esi + 0x42]
push eax
push ecx
push edx
call fcn.0046f940
mov eax, dword [0x58a8a0]
add esp, 0xc
mov word [edi + eax + 0x42], 0
mov dword [esp + 0x18], 0x6a
jmp case.0x42bf0f.81
cmp byte [ebx + 0x41], 0xd
jne case.0x42bf0f.81
mov byte [ebx + 0x41], 0xe
mov eax, dword [ebp + 0x14]
cdq
sub eax, edx
mov dword [ebx + 0x18], 0x8000
sar eax, 1
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x24], ecx
mov byte [ebx + 0x3c], 0
mov byte [ebx + 0x3d], 1
jmp case.0x42bf0f.81
cmp dword [ebx + 0x64], 1
jne 0x42d16d
mov edx, dword [ebx + 0xc]
mov dword [ebx + 0x64], ecx
push ecx
mov ecx, dword [ebx + 0x10]
sub ecx, 0x40000
push 0xe2
push ecx
push edx
call fcn.0042feb0
add esp, 0x10
test eax, eax
jle 0x42d16b
mov edx, dword [0x58a8a0]
mov cl, byte [ebx + 0x45]
shl eax, 7
add eax, edx
mov byte [eax + 0x45], cl
mov byte [eax + 0x41], 8
mov ecx, dword [ebx + 0x60]
mov dword [eax + 0x18], 0xffffc000
mov dword [eax + 0x60], ecx
mov dword [eax + 0x5c], ecx
movsx edx, byte [ebx + 0x45]
shl edx, 0xe
mov dword [eax + 0x14], edx
xor ecx, ecx
mov al, byte [ebx + 0x41]
cmp al, 3
je case.0x42bf0f.81
cmp al, 0x13
je case.0x42bf0f.81
movsx eax, byte [ebx + 0x45]
shl eax, 0x10
mov byte [ebx + 0x41], 0x13
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], 0x8000
mov dword [ebx + 0x24], ecx
mov byte [ebx + 0x3c], 0
jmp case.0x42bf0f.81
mov byte [ebx + 0x41], 0xe
jmp case.0x42bf0f.81
mov al, byte [ebx + 0x41]
cmp al, 3
je case.0x42bf0f.81
cmp al, 0x10
je 0x42d1c5
mov dword [esp + 0x18], 0xc2
mov byte [ebx + 0x41], 0x10
mov byte [ebx + 0x3a], 0
mov edx, dword [0x58a5a0]
and edx, 7
or eax, 0xffffffff
mov dword [ebx + 0x24], edx
mov edx, dword [esp + 0x30]
cmp edx, ecx
mov dword [ebx + 0x54], 0xff
mov dword [ebx + 0x50], eax
jle case.0x42bf0f.81
cmp dword [ebp + 0x14], ecx
jle 0x42d1fb
mov byte [ebx + 0x45], al
jmp case.0x42bf0f.81
mov byte [ebx + 0x45], 1
jmp case.0x42bf0f.81
cmp byte [ebx + 0x41], 1
jne case.0x42bf0f.81
mov esi, dword [esp + 0x2c]
cmp esi, 0x8000
jl case.0x42bf0f.81
mov eax, dword [esp + 0x30]
mov byte [ebx + 0x41], 0xe
cmp eax, ecx
jle 0x42d236
mov al, byte [ebp + 0x45]
test al, al
jg 0x42d236
mov dword [ebx + 0x54], edi
jmp 0x42d23d
mov dword [ebx + 0x54], 0xfffffff8
mov eax, dword [ebx + 0x10]
mov ecx, dword [0x5d01a4]
cmp eax, ecx
jle 0x42d259
mov eax, dword [ebx + 0x54]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [ebx + 0x54], eax
cmp esi, 0x8020
mov dword [ebx + 0x30], esi
jg 0x42d2fb
mov ecx, dword [esp + 0x28]
mov eax, dword [0x5fccfc]
cmp ecx, eax
jge 0x42d2fb
mov esi, dword [esp + 0x14]
mov edx, dword [0x58a8a0]
mov cx, word [esi + edx + 0x42]
lea edi, [esi + edx + 0x42]
test cx, cx
jbe 0x42d2fb
mov eax, dword [0x5a4b68]
cmp eax, 2
je 0x42d2fb
cmp eax, 3
je 0x42d2fb
cmp eax, 5
je 0x42d2fb
cmp eax, 4
je 0x42d2fb
mov eax, dword [esp + 0x2c]
and ecx, 0xffff
add eax, 0xffff8000
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax*4 + 0x5a52a8]
add edx, ecx
mov dword [eax*4 + 0x5a52a8], edx
xor eax, eax
mov ax, word [edi]
push eax
mov eax, dword [0x58a8a0]
mov ecx, dword [esi + eax + 0x10]
mov edx, dword [esi + eax + 0xc]
push ecx
push edx
call fcn.0046f940
mov eax, dword [0x58a8a0]
add esp, 0xc
mov word [esi + eax + 0x42], 0
cmp byte [ebx + 0x44], 0xc1
jne case.0x42bf0f.81
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
push 0
push 0
push 0x18c
push ecx
push edx
call fcn.00478870
add esp, 0x14
jmp case.0x42bf0f.81
mov edi, dword [esp + 0x2c]
cmp edi, 0x8000
jl case.0x42bf0f.81
mov byte [ebx + 0x41], 3
mov eax, dword [esi + 0x10]
push ecx
push ecx
mov ecx, dword [esi + 0xc]
push 0x6a
push eax
push ecx
mov dword [esp + 0x24], 2
call fcn.00478870
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
add esp, 0x14
push 0
push 0
push 0x70
push edx
push eax
call fcn.00478870
mov dword [esi + 0x484], 0x834
mov al, byte [ebx + 0x44]
add esp, 0x14
cmp al, 0x5e
mov dword [esp + 0x18], 0x4a
jne 0x42d398
add edi, 0xffff8000
push 8
push edi
call fcn.0042f460
add esp, 8
jmp case.0x42bf0f.81
lea eax, [edi - 0x8000]
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*8]
lea edx, [eax + ecx*8]
cmp dword [edx*4 + 0x5a535c], 0x36
jne 0x42d3c1
push 0x55
push eax
call fcn.0042f460
add esp, 8
jmp case.0x42bf0f.81
push 0x36
push eax
call fcn.0042f460
add esp, 8
jmp case.0x42bf0f.81
mov al, byte [ebx + 0x41]
cmp al, 0x1c
je 0x42d3ec
cmp al, 0xe
je 0x42d3ec
mov eax, dword [ebx + 0x64]
mov byte [ebx + 0x46], 5
inc eax
mov dword [ebx + 0x64], eax
jmp case.0x42bf0f.81
cmp dword [esp + 0x30], ecx
jle case.0x42bf0f.81
test byte [ebp + 0x68], 6
jne case.0x42bf0f.81
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x20], 1
cmp eax, ecx
je 0x42d41e
cmp dword [ebp + 0x78], 7
ja 0x42d41e
mov byte [ebp + 0x41], 0xa
jmp case.0x42bf0f.81
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
mov cl, byte [ebp + 0x45]
sub esi, eax
neg eax
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x1c]
neg eax
neg cl
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x1c], eax
mov byte [ebp + 0x45], cl
mov eax, dword [0x6087b0]
mov dl, al
add al, 4
sub dl, 0x2c
and eax, 0xff
and edx, 0xff
mov ecx, eax
mov dword [0x6087b0], ecx
mov eax, dword [edx + 0x608a20]
mov edx, dword [ecx + 0x608a20]
xor edx, eax
and eax, 0x7fff
sub eax, 0x3fff
mov dword [ecx + 0x608a20], edx
mov edx, dword [ebp + 0x18]
shl eax, 4
sub eax, edx
cmp eax, 0xfff80000
mov dword [ebp + 0x18], eax
jge 0x42d496
mov dword [ebp + 0x18], 0xfff80000
jmp 0x42d4a5
mov ecx, dword [ebp + 0x18]
mov eax, 0x80000
cmp ecx, eax
jle 0x42d4a5
mov dword [ebp + 0x18], eax
mov eax, dword [0x6087b0]
xor esi, esi
mov cl, al
add al, 4
sub cl, 0x2c
and eax, 0xff
and ecx, 0xff
mov dword [0x6087b0], eax
mov edi, dword [eax + 0x608a20]
mov ecx, dword [ecx + 0x608a20]
xor edi, ecx
and ecx, 7
add ecx, 8
mov dword [eax + 0x608a20], edi
test ecx, ecx
jle 0x42d535
movsx edx, byte [ebp + 0x45]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
neg edx
push edx
push eax
push ecx
call fcn.0046f790
mov eax, dword [0x6087b0]
add esp, 0xc
mov dl, al
add al, 4
sub dl, 0x2c
and eax, 0xff
and edx, 0xff
inc esi
mov edi, dword [eax + 0x608a20]
mov ecx, edx
mov dword [0x6087b0], eax
mov ecx, dword [ecx + 0x608a20]
xor edi, ecx
and ecx, 7
add ecx, 8
mov dword [eax + 0x608a20], edi
cmp esi, ecx
jl 0x42d4e1
mov cl, al
sub al, 0x2c
add cl, 4
and eax, 0xff
and ecx, 0xff
push 0
mov eax, dword [eax + 0x608a20]
mov dword [0x6087b0], ecx
mov edi, dword [ecx + 0x608a20]
push 0
xor edi, eax
and eax, 3
mov dword [ecx + 0x608a20], edi
mov ecx, dword [ebx + 0xc]
mov edx, dword [eax*4 + 0x4ca5c0]
mov eax, dword [ebx + 0x10]
push edx
push eax
push ecx
call fcn.00478870
mov eax, dword [ebp + 0x74]
add esp, 0x14
inc eax
mov dword [ebp + 0x78], 0
mov dword [ebp + 0x74], eax
jmp case.0x42bf0f.81
cmp dword [esp + 0x30], ecx
jle 0x42d5a9
mov al, byte [ebp + 0x45]
neg al
movsx edx, al
mov byte [ebx + 0x45], al
mov dword [ebx + 0x64], edx
jmp 0x42d5ac
mov dword [ebx + 0x64], ecx
mov al, byte [ebx + 0x3e]
cmp al, 0xa
jge 0x42d5f6
mov eax, dword [0x6087b0]
mov cl, al
add al, 4
sub cl, 0x2c
and eax, 0xff
and ecx, 0xff
mov edx, ecx
mov ecx, eax
mov dword [0x6087b0], ecx
mov eax, dword [edx + 0x608a20]
mov esi, dword [ecx + 0x608a20]
xor esi, eax
and eax, 7
add eax, 4
mov dword [ecx + 0x608a20], esi
mov dword [ebx + 0x60], eax
jmp case.0x42bf0f.81
cmp al, 0x14
mov eax, dword [0x6087b0]
jge 0x42d63b
mov dl, al
add al, 4
sub dl, 0x2c
and eax, 0xff
and edx, 0xff
mov ecx, eax
mov dword [0x6087b0], ecx
mov eax, dword [edx + 0x608a20]
mov esi, dword [ecx + 0x608a20]
xor esi, eax
and eax, 3
add eax, 4
mov dword [ecx + 0x608a20], esi
mov dword [ebx + 0x60], eax
jmp case.0x42bf0f.81
mov cl, al
add al, 4
sub cl, 0x2c
and eax, 0xff
and ecx, 0xff
mov edx, ecx
mov ecx, eax
mov dword [0x6087b0], ecx
mov eax, dword [edx + 0x608a20]
mov esi, dword [ecx + 0x608a20]
xor esi, eax
and eax, 3
add eax, 2
mov dword [ecx + 0x608a20], esi
mov dword [ebx + 0x60], eax
jmp case.0x42bf0f.81
cmp dword [esp + 0x30], ecx
jle 0x42d91b
mov al, byte [ebx + 0x3e]
test al, al
jg 0x42d748
mov eax, dword [esp + 0x2c]
mov byte [ebx + 0x41], 3
cmp eax, 0x8000
jl 0x42d74c
cmp eax, 0x8020
jg 0x42d74c
mov edx, dword [esp + 0x28]
mov ecx, dword [0x5fccfc]
cmp edx, ecx
jge 0x42d74c
mov esi, dword [0x58a8a0]
mov edi, dword [esp + 0x14]
mov cx, word [edi + esi + 0x42]
test cx, cx
jbe 0x42d74c
mov edx, dword [0x5a4b68]
cmp edx, 2
je 0x42d74c
cmp edx, 3
je 0x42d74c
cmp edx, 5
je 0x42d74c
cmp edx, 4
je 0x42d74c
add eax, 0xffff8000
and ecx, 0xffff
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax*4 + 0x5a52a8]
add edx, ecx
mov dword [eax*4 + 0x5a52a8], edx
mov ecx, dword [edi + esi + 0x10]
mov edx, dword [edi + esi + 0xc]
xor eax, eax
mov ax, word [edi + esi + 0x42]
push eax
push ecx
push edx
call fcn.0046f940
mov eax, dword [0x58a8a0]
add esp, 0xc
xor ecx, ecx
mov word [edi + eax + 0x42], 0
mov dword [ebx + 0x24], 0x8c
mov dword [esp + 0x10], ecx
jmp case.0x42bf0f.81
mov byte [ebx + 0x41], 0xe
xor ecx, ecx
mov dword [ebx + 0x24], 0x8c
mov dword [esp + 0x10], ecx
jmp case.0x42bf0f.81
mov al, byte [ebx + 0x41]
cmp al, 0x1d
je 0x42d787
mov cl, byte [0x5d999e]
cmp al, 8
mov byte [ebx + 0x3e], cl
jne 0x42d879
mov byte [ebx + 0x41], 0x16
mov dword [esp + 0x10], 0
jmp case.0x42bf0f.81
cmp dword [esp + 0x30], ecx
jle 0x42d879
mov al, byte [ebx + 0x3d]
test al, al
jne 0x42d879
mov dl, byte [esp + 0x1c]
mov al, byte [ebx + 0x3e]
sub al, dl
mov dl, byte [ebx + 0x3a]
test dl, dl
mov byte [ebx + 0x3e], al
je 0x42d7b8
dec al
mov byte [ebx + 0x3a], 0
mov byte [ebx + 0x3e], al
mov al, byte [ebx + 0x3e]
mov byte [ebx + 0x46], 5
test al, al
jg 0x42d879
mov eax, dword [esp + 0x2c]
mov byte [ebx + 0x3e], 0
cmp eax, 0x8000
mov dword [ebx + 0x24], ecx
mov byte [ebx + 0x41], 0x11
jl 0x42d879
cmp eax, 0x8020
jg 0x42d879
mov ecx, dword [esp + 0x28]
mov edx, dword [0x5fccfc]
cmp ecx, edx
jge 0x42d879
mov esi, dword [esp + 0x14]
mov edx, dword [0x58a8a0]
mov cx, word [esi + edx + 0x42]
lea edi, [esi + edx + 0x42]
test cx, cx
jbe 0x42d879
mov edx, dword [0x5a4b68]
cmp edx, 2
je 0x42d879
cmp edx, 3
je 0x42d879
cmp edx, 5
je 0x42d879
cmp edx, 4
je 0x42d879
add eax, 0xffff8000
and ecx, 0xffff
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax*4 + 0x5a52a8]
add edx, ecx
mov dword [eax*4 + 0x5a52a8], edx
xor eax, eax
mov ax, word [edi]
push eax
mov eax, dword [0x58a8a0]
mov ecx, dword [esi + eax + 0x10]
mov edx, dword [esi + eax + 0xc]
push ecx
push edx
call fcn.0046f940
mov eax, dword [0x58a8a0]
add esp, 0xc
mov word [esi + eax + 0x42], 0
mov dword [esp + 0x10], 0
jmp case.0x42bf0f.81
mov byte [ebp + 0x41], 0xa
mov eax, dword [ebx + 0x50]
cmp eax, ecx
jle case.0x42bf0f.81
cmp dword [esp + 0x30], ecx
jle 0x42d8b6
mov dl, byte [ebp + 0x3a]
test dl, dl
je 0x42d8b6
mov al, byte [ebx + 0x41]
mov byte [ebx + 0x3a], 0x23
cmp al, 0x17
je 0x42d8b0
mov byte [ebx + 0x47], al
mov byte [ebx + 0x41], 0x17
jmp 0x42d8e2
mov dl, byte [ebx + 0x3a]
test dl, dl
mov edx, dword [esp + 0x1c]
jbe 0x42d8dd
cmp edx, 3
jle 0x42d8d1
sub eax, edx
mov byte [ebx + 0x3a], 0
mov dword [ebx + 0x50], eax
jmp 0x42d8e2
add eax, 0xfffffffd
mov byte [ebx + 0x3a], 0
mov dword [ebx + 0x50], eax
jmp 0x42d8e2
sub eax, edx
mov dword [ebx + 0x50], eax
mov eax, dword [ebx + 0x50]
mov byte [ebx + 0x46], 5
cdq
sub eax, edx
sar eax, 1
test al, al
mov byte [ebx + 0x3e], al
jg case.0x42bf0f.81
cmp dword [ebx + 0x6c], ecx
jne 0x42d924
mov byte [ebx + 0x41], 2
mov byte [ebx + 0x3c], 0
mov dword [ebx + 0x24], ecx
mov dword [ebx + 0x6c], 1
mov dword [ebx + 0x50], 0xc8
mov byte [ebx + 0x3e], 0x32
mov dword [esp + 0x10], ecx
jmp case.0x42bf0f.81
mov edx, dword [esp + 0x2c]
mov byte [ebx + 0x3e], 0
mov dword [ebx + 0x24], ecx
mov byte [ebx + 0x41], 0x11
mov ecx, dword [0x54f86c]
lea eax, [edx + 0x8000]
add ecx, 5
cmp eax, 0x8000
mov word [ebx + 0x34], cx
mov byte [ebx + 0x3d], 3
jl case.0x42bf0f.81
cmp eax, 0x8020
jg case.0x42bf0f.81
mov ecx, dword [esp + 0x28]
mov edx, dword [0x5fccfc]
cmp ecx, edx
jge case.0x42bf0f.81
mov esi, dword [0x58a8a0]
mov edx, dword [esp + 0x14]
mov cx, word [edx + esi + 0x42]
lea edi, [edx + esi + 0x42]
test cx, cx
jbe case.0x42bf0f.81
mov edx, dword [0x5a4b68]
cmp edx, 2
je case.0x42bf0f.81
cmp edx, 3
je case.0x42bf0f.81
cmp edx, 5
je case.0x42bf0f.81
cmp edx, 4
je case.0x42bf0f.81
add eax, 0xffff8000
and ecx, 0xffff
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax*4 + 0x5a52a8]
add edx, ecx
mov dword [eax*4 + 0x5a52a8], edx
xor eax, eax
mov ax, word [edi]
mov edi, dword [esp + 0x14]
push eax
mov ecx, dword [edi + esi + 0x10]
mov edx, dword [edi + esi + 0xc]
push ecx
push edx
call fcn.0046f940
mov eax, dword [0x58a8a0]
add esp, 0xc
mov word [edi + eax + 0x42], 0
jmp case.0x42bf0f.81
mov al, byte [ebx + 0x3e]
test al, al
jl case.0x42bf0f.81
cmp dword [esp + 0x30], ecx
jle 0x42da3e
sub al, byte [ebp + 0x48]
mov byte [ebx + 0x3e], al
mov al, byte [ebx + 0x3a]
test al, al
jbe 0x42da43
push ecx
mov ecx, dword [esp + 0x2c]
push ecx
call section..text
mov al, byte [ebx + 0x3e]
add esp, 8
dec al
mov byte [ebx + 0x3a], 0
mov byte [ebx + 0x3e], al
xor ecx, ecx
jmp 0x42da43
dec al
mov byte [ebx + 0x3e], al
mov al, byte [ebx + 0x3e]
mov byte [ebx + 0x46], 5
test al, al
jge case.0x42bf0f.81
mov byte [ebx + 0x3e], 0xff
mov dword [ebx + 0x24], ecx
mov byte [ebx + 0x41], 0x11
mov dword [esp + 0x10], 2
mov eax, dword [esp + 0x18]
test eax, eax
je 0x42da80
mov ecx, dword [ebx + 0xc]
push 0
mov edx, eax
mov eax, dword [ebx + 0x10]
push 0
push edx
push eax
push ecx
call fcn.00478870
add esp, 0x14
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
test eax, eax
je 0x42dbc3
mov eax, dword [esp + 0x2c]
cmp eax, 0x8000
jl 0x42db36
cmp eax, 0x8020
jg 0x42db36
mov edx, dword [0x5fccfc]
mov eax, dword [esp + 0x28]
cmp eax, edx
jge 0x42db36
mov eax, dword [0x58a8a0]
mov cx, word [esi + eax + 0x42]
lea edi, [esi + eax + 0x42]
test cx, cx
jbe 0x42db36
mov eax, dword [0x5a4b68]
cmp eax, 2
je 0x42db36
cmp eax, 3
je 0x42db36
cmp eax, 5
je 0x42db36
cmp eax, 4
je 0x42db36
mov edx, dword [esp + 0x2c]
and ecx, 0xffff
lea eax, [edx - 0x8000]
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax*4 + 0x5a52a8]
add edx, ecx
mov dword [eax*4 + 0x5a52a8], edx
xor eax, eax
mov ax, word [edi]
push eax
mov eax, dword [0x58a8a0]
mov ecx, dword [esi + eax + 0x10]
mov edx, dword [esi + eax + 0xc]
push ecx
push edx
call fcn.0046f940
mov eax, dword [0x58a8a0]
add esp, 0xc
mov word [esi + eax + 0x42], 0
cmp dword [esp + 0x10], 1
jg 0x42db97
mov eax, dword [esp + 0x2c]
test eax, eax
jle 0x42db90
mov eax, dword [esp + 0x30]
test eax, eax
jl 0x42db7c
mov edx, dword [0x54f800]
xor ecx, ecx
mov cx, word [ebp + 0x34]
add edx, 0x11
cmp ecx, edx
jne 0x42db6e
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
push 5
push eax
push ecx
jmp 0x42db88
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
push 0xa
push edx
push eax
jmp 0x42db88
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
push 0xa
push ecx
push edx
call fcn.0042ac80
add esp, 0xc
cmp dword [esp + 0x10], 1
jl 0x42dbc3
mov al, byte [ebp + 0x68]
push 0
test al, 2
je 0x42dbb6
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
push 0
push 0x4b
push ecx
push edx
call fcn.00478870
add esp, 0x14
push 1
mov eax, dword [esp + 0x2c]
push eax
call fcn.0046fbb0
add esp, 8
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x42dd1c
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x42dd1c
mov al, byte [ebp + 0x44]
mov byte [ebp + 0x41], 0xa
cmp al, 0x13
jne 0x42dc8f
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
push 0
push 0
push 0x5f
push ecx
push edx
call fcn.00478870
mov eax, dword [0x6087b0]
add esp, 0x14
mov cl, al
add al, 4
sub cl, 0x2c
and eax, 0xff
and ecx, 0xff
mov edx, ecx
mov ecx, eax
mov dword [0x6087b0], ecx
mov eax, dword [edx + 0x608a20]
mov esi, dword [ecx + 0x608a20]
xor esi, eax
and eax, 7
inc eax
mov dword [ecx + 0x608a20], esi
mov esi, eax
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
push 0
push 0x16
push edx
push eax
call fcn.0042feb0
add esp, 0x10
test eax, eax
jle 0x42dd1c
mov ecx, dword [0x54f800]
mov edx, dword [0x58a8a0]
shl eax, 7
add ecx, 0x4b
dec esi
mov word [eax + edx + 0x34], cx
mov ecx, dword [0x58a8a0]
mov byte [eax + ecx + 0x3f], 1
mov edx, dword [0x58a8a0]
mov byte [eax + edx + 0x3b], 2
jne 0x42dc3b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
cmp byte [ebp + 0x44], 0x11
jne 0x42dd1c
mov eax, dword [0x6087b0]
mov cl, al
add al, 4
sub cl, 0x2c
and eax, 0xff
and ecx, 0xff
mov edx, ecx
mov ecx, eax
mov dword [0x6087b0], ecx
mov eax, dword [edx + 0x608a20]
mov esi, dword [ecx + 0x608a20]
xor esi, eax
and eax, 7
inc eax
mov dword [ecx + 0x608a20], esi
mov esi, eax
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
push 0
push 0x18
push edx
push eax
call fcn.0042feb0
add esp, 0x10
test eax, eax
jle 0x42dd1c
mov ecx, dword [0x54f90c]
mov edx, dword [0x58a8a0]
shl eax, 7
add ecx, 0x56
dec esi
mov word [eax + edx + 0x34], cx
mov ecx, dword [0x58a8a0]
mov byte [eax + ecx + 0x3f], 1
mov edx, dword [0x58a8a0]
mov byte [eax + edx + 0x3b], 2
jne 0x42dcd4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret