Function at 0x439920
Capabilities:
Encode data using xor
Encrypt data using rc4 prga
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x58
mov eax, dword [ebp + 8]
movzx eax, word [eax]
mov dword [esp + 0x28], 0xc3c46315
mov dword [esp + 0x2c], 0
mov word [esp + 0x30], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 9
ja 0x4399b1
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + 0xa1]
and esi, edx
mov edi, 0xe19e645e
sub edi, ecx
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x18]
mov edx, ecx
xor edx, 0x98
and ecx, 0x18
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xa
jb 0x439960
xor ecx, ecx
cmp dword [esp + 0x28], eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x4459b8]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
mov ecx, dword [ecx + eax]
mov dword [esp + 0x28], 0xa3a2687c
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xf
ja 0x439a4e
nop
nop
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x28]
lea edi, [edx - 0x47be881a]
add edx, 0xe6
and edx, esi
or edi, esi
sub edi, edx
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x18]
mov esi, edx
or esi, 0xb5
and edx, 0xb5
add edx, esi
inc dl
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x28], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x10
jb 0x439a00
xor edx, edx
cmp ecx, dword [esp + 0x28]
setne dl
xor ebx, ebx
jmp dword [edx*4 + 0x4459c0]
jmp dword [0x4459d0]
jmp dword [0x4459e4]
xor ecx, ecx
mov edx, dword [ebp + 8]
cmp dword [edx + eax + 0x7c], 0
sete cl
xor ebx, ebx
jmp dword [ecx*4 + 0x4459e8]
mov ecx, dword [edx + eax + 0x78]
xor eax, eax
test ecx, ecx
sete al
xor ebx, ebx
jmp dword [eax*4 + 0x4459f0]
mov eax, dword [edx + ecx + 0x20]
add eax, edx
mov dword [esp + 0x44], eax
mov eax, dword [edx + ecx + 0x24]
add eax, edx
mov dword [esp + 0x24], eax
mov eax, dword [edx + ecx + 0x1c]
add eax, edx
mov dword [esp + 0x20], eax
mov ebx, dword [0x44785c]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4459f8]
mov edi, dword [0x447858]
mov dword [esp + 0x10], ecx
mov eax, dword [edx + ecx + 0x18]
add eax, edi
mov ecx, 0xffffffff
cmp eax, 0x20000000
jae 0x439af3
shl eax, 3
mov ecx, eax
push ecx
call fcn.00408de0
add esp, 4
mov esi, eax
lea ecx, [edi*8]
lea edx, [ebx + edi*8]
cmp eax, ebx
jbe 0x439f8c
cmp edx, esi
jbe 0x439f8c
test ecx, ecx
je 0x439b6f
mov eax, ecx
nop
nop
movzx edx, byte [ebx + ecx - 1]
mov byte [esi + ecx - 1], dl
movzx edx, byte [ebx + ecx - 2]
mov byte [esi + ecx - 2], dl
movzx edx, byte [ebx + ecx - 3]
mov byte [esi + ecx - 3], dl
movzx edx, byte [ebx + ecx - 4]
mov byte [esi + ecx - 4], dl
movzx edx, byte [ebx + ecx - 5]
mov byte [esi + ecx - 5], dl
movzx edx, byte [ebx + ecx - 6]
mov byte [esi + ecx - 6], dl
movzx edx, byte [ebx + ecx - 7]
mov byte [esi + ecx - 7], dl
movzx edx, byte [ebx + ecx - 8]
mov byte [esi + ecx - 8], dl
add eax, 0xfffffff8
mov ecx, eax
jne 0x439b20
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x445a00]
push ebx
call fcn.00408df0
add esp, 4
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
jmp 0x439bb5
mov edi, ecx
mov eax, dword [edx + ecx + 0x18]
mov ecx, 0xffffffff
cmp eax, 0x20000000
mov ebx, edx
jae 0x439ba8
shl eax, 3
mov ecx, eax
push ecx
call fcn.00408de0
add esp, 4
mov esi, eax
mov ecx, edi
mov dword [0x44785c], esi
mov eax, dword [case.0x439fb3.4]
mov dword [esp + 0x10], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor edx, edx
xor eax, eax
mov dword [esp + 0x1c], 0
cmp edx, dword [ebx + ecx + 0x18]
setb al
xor edx, edx
jmp dword [eax*4 + 0x445a18]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], edx
mov edi, dword [eax + edx*4]
add edi, ebx
mov edx, 0xffffffff
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebx
cmp byte [edi + edx + 1], 0
lea edx, [edx + 1]
lea ebx, [ebx + 1]
jne 0x439c10
test edx, edx
mov dword [esp + 0xc], edi
je 0x439c40
cmp edx, 4
jae 0x439c50
mov esi, 0xdca9bcf
jmp 0x439c97
mov esi, 0xdca9bcf
mov ebx, dword [ebp + 8]
jmp 0x439cc1
mov ebx, ecx
and ebx, 0xfffffffc
mov esi, 0xdca9bcf
nop
nop
nop
nop
nop
nop
movsx eax, byte [edi]
xor eax, esi
imul eax, eax, 0x1000193
movsx esi, byte [edi + 1]
xor esi, eax
imul eax, esi, 0x1000193
movsx esi, byte [edi + 2]
xor esi, eax
imul eax, esi, 0x1000193
movsx esi, byte [edi + 3]
add edi, 4
xor esi, eax
imul esi, esi, 0x1000193
add ebx, 0xfffffffc
jne 0x439c60
test dl, 3
mov ebx, dword [ebp + 8]
je 0x439cc1
and ecx, 3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx eax, byte [edi + edx]
xor eax, esi
imul esi, eax, 0x1000193
inc edx
cmp ecx, edx
jne 0x439cb0
xor eax, eax
cmp dword [0x447860], 0
sete al
mov dword [esp + 0x48], esi
jmp dword [eax*4 + 0x445a20]
xor ecx, ecx
cmp esi, 0xc67cc347
sete cl
jmp dword [ecx*4 + 0x445a28]
xor ecx, ecx
mov eax, dword [esp + 0xc]
cmp byte [eax], 0x4e
setne cl
mov edx, dword [esp + 0x14]
jmp dword [ecx*4 + 0x445a30]
xor ecx, ecx
cmp byte [eax + 1], 0x74
setne cl
jmp dword [ecx*4 + 0x445a38]
mov eax, dword [esp + 0x24]
movzx eax, word [eax + edx*2]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + eax*4]
add eax, ebx
mov dword [esp + 0x4c], eax
mov edi, 0xffffffff
xor ebx, ebx
xor eax, eax
cmp ebx, 0x20
setl al
xor ecx, ecx
jmp dword [eax*4 + 0x445a40]
mov ecx, dword [esp + 0xc]
jmp dword [edx*4 + 0x445a88]
xor eax, eax
cmp ecx, 0x20
setl al
jmp dword [eax*4 + 0x445a40]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], ecx
add eax, ecx
lea ecx, [esp + 0x28]
push ecx
push eax
call fcn.00401000
add esp, 8
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x40]
mov eax, ecx
shr eax, 0xa
and eax, 4
jmp dword [eax + 0x445a48]
movzx edx, byte [esp + 0x2e]
xor eax, eax
mov byte [esp + 0xb], dl
cmp dl, 0xc2
sete al
jmp dword [eax*4 + 0x445a60]
mov eax, ecx
shr eax, 1
and eax, 4
mov edx, 1
jmp dword [eax + 0x445a68]
xor eax, eax
cmp byte [esp + 0xb], 0xc3
sete al
mov edx, 1
jmp dword [eax*4 + 0x445a70]
xor eax, eax
cmp byte [esp + 0xb], 0xb8
sete al
jmp dword [eax*4 + 0x445a78]
mov eax, ecx
xor eax, 0x10
add eax, ecx
mov edx, ecx
and edx, 0xffffffef
sub eax, edx
xor ecx, 0xffffffef
xor edx, edx
test eax, ecx
setne dl
jmp dword [edx*4 + 0x445a80]
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x50]
xor eax, eax
jmp dword [eax*4 + 0x445a88]
mov edx, 1
jmp dword [0x445a5c]
mov eax, 1
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
jmp dword [eax*4 + 0x445a88]
xor ecx, ecx
cmp edi, 0xffffffff
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x445a90]
xor ecx, ecx
cmp ebx, dword [0x447858]
setb cl
jmp dword [ecx*4 + 0x445a98]
mov ecx, dword [0x44785c]
xor edx, edx
cmp dword [ecx + ebx*8], esi
sete dl
mov dword [esp + 0xc], edx
mov edx, 1
mov esi, ebx
mov ebx, edi
mov edi, dword [esp + 0xc]
jmp dword [edi*4 + 0x445aa0]
jmp dword [0x445aa8]
mov dword [ecx + esi*8 + 4], ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ecx + esi*8 + 4], ebx
mov al, 1
xor edx, edx
jmp dword [0x445ab0]
mov edi, ebx
mov ebx, esi
mov esi, dword [esp + 0x48]
jmp dword [edx*4 + 0x445ab8]
jmp dword [0x445ac4]
inc ebx
jmp dword [0x445acc]
inc ebx
inc ebx
jmp dword [0x445acc]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
movzx eax, word [eax + edx*2]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + eax*4]
mov dword [0x447860], eax
jmp case.0x439fb3.13
and al, 1
movzx eax, al
mov cl, 1
mov dword [esp + 0x1c], ecx
jmp dword [eax*4 + 0x445ad0]
mov eax, dword [0x44785c]
mov ecx, dword [0x447858]
lea edx, [ecx + 1]
mov dword [0x447858], edx
mov dword [eax + ecx*8 + 4], edi
mov dword [eax + ecx*8], esi
mov eax, dword [case.0x439fb3.13]
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x439fb3.62]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
inc edx
xor eax, eax
mov ecx, dword [esp + 0x10]
cmp edx, dword [ebx + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x445a18]
mov ebx, dword [esp + 0x1c]
and bl, 1
mov eax, dword [case.0x439a59.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, esi
add eax, ecx
shr ecx, 2
mov edi, esi
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov edi, eax
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ebx, dword [0x44785c]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x445a00]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
jmp dword [eax*4 + 0x4461f0]
mov edx, dword [edx]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
nop
nop
mov dword [esp + 0xc], edx
mov ecx, dword [edx + 0x30]
xor eax, eax
test ecx, ecx
setne al
mov dword [esp + 0x18], 1
mov edx, edi
mov dword [esp + 0x28], ecx
jmp dword [eax*4 + 0x4461b0]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
jmp dword [esp + 0x24]
movzx ebx, word [edx]
lea eax, [ebx - 0x41]
cmp ax, 0x1a
jae 0x43a155
mov eax, ebx
xor eax, 0x20
add eax, ebx
and ebx, 0xffffffdf
sub eax, ebx
mov ebx, eax
movzx eax, word [ecx]
lea edi, [eax - 0x41]
cmp di, 0x1a
jae 0x43a16f
mov edi, eax
xor edi, 0x20
add edi, eax
and eax, 0xffffffdf
sub edi, eax
mov eax, edi
test bx, bx
je 0x43a130
add edx, 2
add ecx, 2
cmp bx, ax
je case.0x439fb3.96
jmp 0x43a130
xor ecx, ecx
cmp bx, ax
sete cl
jmp dword [ecx*4 + 0x4461c8]
jmp dword [esp + 0x20]
jmp dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x18]
mov dword [esp + 8], eax
xor eax, eax
jmp dword [eax*4 + 0x4461f0]
mov eax, dword [case.0x439fb3.121]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 8]
mov ecx, dword [case.0x439fb3.135]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov ecx, dword [eax + 8]
mov eax, dword [case.0x439fb3.141]
nop
nop
nop
nop
nop
nop
jmp eax
movzx eax, word [ecx]
mov dword [esp + 8], 0xb3b2dbed
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 0xf
ja 0x43a31d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 8]
lea edi, [edx + esi]
add edi, 0x41026bb8
add edx, 0x41026bb8
and edx, esi
add edx, edx
sub edi, edx
mov dword [esp + 4], edi
mov edx, dword [esp + 4]
add dl, 0xf8
mov esi, dword [esp]
mov byte [esp + esi + 8], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 0x10
jb 0x43a2e0
mov edx, dword [esp + 8]
xor ebx, ebx
cmp edx, eax
sete bl
xor edx, edx
jmp dword [ebx*4 + 0x446230]
mov eax, dword [ecx + 0x3c]
mov esi, dword [ecx + eax]
mov dword [esp + 0x18], esi
mov dword [esp + 8], 0x6b6ad0dc
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0
mov edi, dword [esp]
cmp edi, 0xb
ja 0x43a3aa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp]
mov ebx, dword [esp]
movzx ebx, byte [esp + ebx + 8]
lea esi, [edi - 0x66ec7e2e]
add edi, 0xd2
and edi, ebx
or esi, ebx
sub esi, edi
mov dword [esp + 4], esi
mov ebx, dword [esp + 4]
add bl, 0x42
mov esi, dword [esp]
mov byte [esp + esi + 8], bl
inc dword [esp]
mov esi, dword [esp]
cmp esi, 0xc
jb 0x43a370
xor ebx, ebx
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 8]
sete bl
jmp dword [ebx*4 + 0x446238]
mov ecx, 1
jmp dword [ecx*4 + 0x446240]
mov eax, dword [ecx + eax + 0x50]
mov edx, 1
xor ecx, ecx
jmp dword [ecx*4 + 0x446240]
mov ecx, dword [case.0x43a32a.0]
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x446258]
jmp 0x43a404
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
mov ecx, dword [ecx]
jmp case.0x43a4ad.2
jmp dword [0x4462c8]
mov eax, dword [case.0x439fb3.219]
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + eax + 0x20]
add ecx, esi
mov dword [esp + 0x3c], ecx
mov ecx, dword [esi + eax + 0x24]
add ecx, esi
mov dword [esp + 0x30], ecx
mov ecx, dword [esi + eax + 0x1c]
add ecx, esi
mov dword [esp + 0x2c], ecx
mov eax, dword [esi + eax + 0x18]
mov dword [esp + 0x44], eax
xor edx, edx
mov ecx, dword [case.0x439fb3.310]
mov dword [esp + 0x38], ecx
nop
nop
nop
nop
jmp ecx
xor eax, eax
cmp edx, dword [esp + 0x44]
setb al
mov dword [esp + 0x40], 1
jmp dword [eax*4 + 0x446360]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], edx
mov eax, dword [eax + edx*4]
add eax, esi
mov dword [esp + 8], eax
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 4], 0xfffffff4
mov edi, 0xfffffffa
mov ecx, 0xfffffffe
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov dword [esp + 0xc], edx
mov edx, edi
mov ebx, ecx
mov esi, eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
cmp byte [eax + ecx + 1], 0
lea eax, [ecx + 1]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
lea eax, [eax - 4]
mov dword [esp + 4], eax
lea edi, [edi + 8]
lea ecx, [ebx + 4]
lea eax, [esi + 1]
jne 0x43a8b0
mov dword [esp + 4], ebx
mov dword [esp + 0x1c], esi
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x43a91b
cmp ecx, 4
jae 0x43a925
mov edi, 0xdca9bcf
mov edx, ecx
mov eax, ecx
mov esi, dword [esp + 0x1c]
test al, 3
jne 0x43a9c5
jmp 0x43a9e8
mov edi, 0xdca9bcf
jmp 0x43a9e8
mov esi, dword [esp + 0x1c]
and esi, 0xfffffffc
mov dword [esp + 0x48], esi
mov eax, 0xdca9bcf
mov edi, edx
mov edx, dword [esp + 4]
nop
nop
nop
nop
nop
mov esi, ecx
mov dword [esp + 4], ecx
movsx ecx, byte [ebx]
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [esi + esi]
movsx esi, byte [ebx + 1]
xor esi, eax
imul eax, esi, 0x1000193
movsx esi, byte [ebx + 2]
xor esi, eax
lea eax, [ecx + ecx*2]
mov dword [esp + 8], eax
mov eax, edi
sub edi, dword [esp + 8]
imul esi, esi, 0x1000193
mov dword [esp + 8], esi
sub ecx, edx
add ecx, dword [esp + 4]
add ecx, edi
mov edi, eax
movsx esi, byte [ebx + 3]
xor esi, dword [esp + 8]
imul eax, esi, 0x1000193
add ebx, 4
add dword [esp + 0xc], 0x10
add edi, 0xffffffe0
add edx, 0xfffffff0
add dword [esp + 0x48], 0xfffffffc
jne 0x43a940
mov edi, eax
mov eax, dword [esp + 4]
lea edx, [eax + eax*2]
add edx, dword [esp + 0xc]
neg edx
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
test al, 3
je 0x43a9e8
and esi, 3
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, edx
not ecx
lea edx, [ecx + edx*2]
movsx ecx, byte [ebx + eax]
xor ecx, edi
imul edi, ecx, 0x1000193
inc eax
cmp esi, eax
jne 0x43a9d0
xor eax, eax
cmp edi, dword [ebp + 0xc]
setne al
jmp dword [eax*4 + 0x446368]
mov edx, dword [esp + 0x28]
inc edx
mov ecx, dword [esp + 0x38]
mov esi, dword [ebp + 8]
jmp case.0x439fb3.309
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax*4]
xor edx, edx
mov ecx, eax
sub ecx, dword [esp + 0x24]
setae dl
mov esi, dword [ebp + 8]
jmp dword [edx*4 + 0x446370]
mov edx, dword [case.0x439fb3.323]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp edx
xor edx, edx
cmp ecx, dword [esp + 0x34]
setb dl
jmp dword [edx*4 + 0x446388]
add esi, eax
xor ecx, ecx
mov eax, esi
jmp dword [ecx*4 + 0x446390]
mov ecx, dword [esp + 0x40]
jmp dword [ecx*4 + 0x446390]
xor eax, eax
int3
jmp case.0x439fb3.384
mov edx, dword [esi + 0x34]
add edx, 4
add dword [esi + 0x30], 4
mov eax, 1
mov edi, dword [esi + 0x2c]
mov ebx, dword [esi + 0x28]
jmp dword [eax*4 + 0x446430]
mov eax, dword [edx]
mov ecx, dword [esi + 0x3c]
nop
nop
nop
nop
nop
nop
jmp ecx
jmp edi
mov ecx, eax
shr ecx, 0x1f
jmp dword [ecx*4 + 0x4463f8]
test eax, eax
setne cl
jmp case.0x439fb3.362
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ebx
movzx ecx, cl
jmp dword [ecx*4 + 0x446410]
mov dword [esi + 0x34], edx
mov ecx, dword [esi + 0x44]
add eax, ecx
add eax, 2
mov dword [esi + 4], eax
mov dword [esi + 8], 0xffffffff
mov dword [esi + 0x18], 0xfffffff4
mov edi, 0xfffffffa
mov ebx, 0xfffffffe
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, edi
mov edx, ebx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov edi, dword [esi + 8]
cmp byte [eax + edi + 1], 0
lea eax, [edi + 1]
mov dword [esi + 8], eax
mov eax, dword [esi + 0xc]
lea eax, [eax - 4]
mov dword [esi + 0x18], eax
lea edi, [ecx + 8]
lea ebx, [ebx + 4]
mov eax, dword [esi + 0x20]
lea eax, [eax + 1]
jne 0x43ab30
mov edi, dword [esi + 4]
mov dword [esi + 0x18], edx
mov dword [esi + 0x48], ecx
mov ebx, 0xdca9bcf
mov eax, dword [esi + 8]
test eax, eax
mov edx, dword [esi + 0x20]
je 0x43ac5f
cmp eax, 4
jae 0x43ab8d
mov ecx, eax
jmp 0x43ac2d
and edx, 0xfffffffc
mov dword [esi + 0x4c], edx
mov dword [esi + 0x10], 0xdca9bcf
mov ebx, eax
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x48]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0xc], eax
mov dword [esi + 4], ebx
movsx eax, byte [edi]
xor eax, dword [esi + 0x10]
imul eax, eax, 0x1000193
add ebx, ebx
movsx ecx, byte [edi + 1]
xor ecx, eax
imul eax, ecx, 0x1000193
movsx ecx, byte [edi + 2]
xor ecx, eax
lea eax, [ebx + ebx*2]
mov dword [esi + 0x10], eax
mov eax, edx
sub edx, dword [esi + 0x10]
imul ecx, ecx, 0x1000193
mov dword [esi + 0x10], ecx
sub ebx, dword [esi + 0x18]
add ebx, dword [esi + 4]
add ebx, edx
mov edx, eax
mov eax, dword [esi + 0xc]
movsx ecx, byte [edi + 3]
xor ecx, dword [esi + 0x10]
imul ecx, ecx, 0x1000193
mov dword [esi + 0x10], ecx
add edi, 4
add eax, 0x10
add edx, 0xffffffe0
add dword [esi + 0x18], 0xfffffff0
add dword [esi + 0x4c], 0xfffffffc
jne 0x43abb0
mov ebx, dword [esi + 0x10]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*2]
add ecx, eax
neg ecx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 8]
mov dword [esi + 4], edi
test al, 3
je 0x43ac5f
and edx, 3
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov edi, edx
mov edx, ecx
not edx
lea ecx, [edx + ecx*2]
mov edx, dword [esi + 4]
movsx edx, byte [edx + eax]
xor edx, ebx
imul ebx, edx, 0x1000193
mov edx, edi
inc eax
cmp edi, eax
jne 0x43ac40
xor eax, eax
cmp ebx, dword [esi + 0x40]
sete al
jmp dword [eax*4 + 0x446418]
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
mov edx, dword [esi + 0x34]
jmp dword [esi + 0x38]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
jmp dword [esi + 0x24]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
mov dword [ecx], eax
jmp dword [esi + 0x24]
xor eax, eax
mov edi, dword [esi + 0x2c]
mov ebx, dword [esi + 0x28]
jmp dword [eax*4 + 0x446430]
mov eax, dword [esi + 0x14]
mov dword [eax], 0
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
jmp case.0x439fb3.384
mov edi, dword [esi + 0xc]
jmp dword [0x4463b4]
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [eax], 0xfbf81339
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xf
ja case.0x439fb3.339
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [eax + edx]
lea edi, [ecx - 0x2f8db5e1]
add ecx, 0x1f
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x1c], edi
mov ecx, dword [esi + 0x1c]
add cl, 0x27
mov edx, dword [esi]
mov byte [eax + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x10
jb 0x43ad00
push eax
mov dword [esi + 0x14], esp
push eax
mov edi, esp
push eax
mov dword [esi + 0xc], esp
push eax
mov ebx, esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
mov dword [esi + 8], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 4], edi
mov edx, dword [ebp + 0xc]
mov dword [edi], edx
mov edx, dword [ebp + 8]
mov edi, dword [esi + 0xc]
mov dword [edi], edx
mov dword [esi + 0x20], ebx
mov dword [ebx], edx
movzx edx, word [edx]
mov dword [esi + 0x18], edx
mov dword [ecx], 0xfbf81339
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [esi], 0
mov edx, dword [esi]
cmp edx, 0xf
ja 0x43adce
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi]
mov ebx, dword [esi]
movzx ebx, byte [ecx + ebx]
lea edi, [edx - 0x2f8db5e1]
add edx, 0x1f
and edx, ebx
or edi, ebx
sub edi, edx
mov dword [esi + 0x1c], edi
mov edx, dword [esi + 0x1c]
add dl, 0x27
mov edi, dword [esi]
mov byte [ecx + edi], dl
inc dword [esi]
mov edx, dword [esi]
cmp edx, 0x10
jb 0x43ada0
jmp dword [0x4463a4]
xor edx, edx
mov edi, dword [esi + 0x18]
cmp dword [ecx], edi
setne dl
jmp dword [edx*4 + 0x4463a8]
mov eax, dword [eax + 0x80]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4463d0]
mov ecx, dword [edi]
mov edx, dword [ecx + eax]
add edx, ecx
mov eax, dword [ecx + eax + 0x10]
mov dword [esi + 0x44], ecx
add eax, ecx
mov dword [esi + 0x30], eax
mov eax, dword [esi + 4]
mov eax, dword [eax]
mov dword [esi + 0x40], eax
mov ecx, dword [case.0x439fb3.353]
mov edi, dword [case.0x439fb3.359]
mov ebx, dword [case.0x439fb3.363]
mov eax, dword [case.0x439fb3.368]
mov dword [esi + 0x38], eax
mov eax, dword [case.0x439fb3.369]
mov dword [esi + 0x24], eax
mov eax, dword [edx]
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x2c], edi
mov dword [esi + 0x28], ebx
jmp case.0x439fb3.351
jmp case.0x439fb3.341
mov ecx, dword [edi]
mov edx, dword [esi + 0x20]
mov edx, dword [edx]
mov edx, dword [edx + 0x3c]
lea ebx, [ecx + edx]
mov edi, dword [esi + 8]
mov dword [edi], ebx
mov edi, dword [ecx + edx]
mov dword [eax], 0x4b4a809c
mov dword [eax + 4], 0
mov dword [eax + 7], 0
mov dword [esi], 0
mov edx, dword [esi]
cmp edx, 0xa
ja 0x43aec1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi]
mov ebx, dword [esi]
movzx ebx, byte [eax + ebx]
lea ecx, [edx - 0x2cdf276]
add edx, 0x8a
and edx, ebx
or ecx, ebx
sub ecx, edx
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0x1c]
add cl, 0x3a
mov edx, dword [esi]
mov byte [eax + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0xb
jb 0x43ae90
mov edx, edi
mov edi, dword [esi + 0xc]
jmp dword [0x4463bc]
mov ecx, dword [edi]
mov edx, dword [esi + 0x20]
mov edx, dword [edx]
add ecx, dword [edx + 0x3c]
mov edx, dword [esi + 8]
mov dword [edx], ecx
mov dword [eax], 0x4b4a809c
mov dword [eax + 4], 0
mov dword [eax + 7], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xa
ja case.0x439fb3.343
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [eax + edx]
lea ebx, [ecx - 0x2cdf276]
add ecx, 0x8a
and ecx, edx
or ebx, edx
sub ebx, ecx
mov dword [esi + 0x1c], ebx
mov ecx, dword [esi + 0x1c]
add cl, 0x3a
mov edx, dword [esi]
mov byte [eax + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0xb
jb 0x43af00
jmp case.0x439fb3.343
xor ecx, ecx
cmp edx, dword [eax]
setne cl
jmp dword [ecx*4 + 0x4463c0]
mov eax, dword [esi + 8]
mov eax, dword [eax]
xor ecx, ecx
cmp dword [eax + 0x84], 0
sete cl
jmp dword [ecx*4 + 0x4463c8]
mov eax, dword [esi + 0x14]
mov dword [eax], 0
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xe
ja case.0x439fb3.407
nop
mov ecx, dword [esi]
mov ebx, dword [esi]
movzx ebx, byte [edx + ebx]
lea eax, [ecx + 0xde]
add ecx, ebx
and eax, ebx
add eax, eax
sub ecx, eax
add ecx, 0x2dd53fde
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
add al, 0xee
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xf
jb 0x43afa0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xe
ja 0x43b012
nop
mov ecx, dword [esi]
mov eax, dword [esi]
movzx eax, byte [edx + eax]
lea ebx, [ecx + 0xde]
add ecx, eax
and ebx, eax
add ebx, ebx
sub ecx, ebx
add ecx, 0x2dd53fde
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
add al, 0xee
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xf
jb 0x43afe0
jmp dword [0x44645c]
xor eax, eax
mov ecx, dword [esi + 0x10]
cmp ecx, dword [edx]
setne al
jmp dword [eax*4 + 0x446460]
mov ecx, dword [edi]
lea eax, [ecx + 0x18]
mov edx, dword [case.0x439fb3.416]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp edx
movzx edx, word [ecx + 0x14]
add eax, edx
movzx edx, word [ecx + 6]
xor ecx, ecx
xor ebx, ebx
mov word [esi + 0x14], dx
cmp cx, dx
setb bl
mov dword [esi + 0x10], 1
jmp dword [ebx*4 + 0x446488]
mov edx, dword [ebp + 0xc]
movzx ebx, byte [edx]
mov bh, byte [eax]
cmp bl, bh
jne case.default.0x43b0d2
movzx ebx, byte [edx + 1]
mov bh, byte [eax + 1]
cmp bl, bh
jne case.default.0x43b0d2
movzx ebx, byte [edx + 2]
mov bh, byte [eax + 2]
cmp bl, bh
jne case.default.0x43b0d2
movzx ebx, byte [edx + 3]
mov bh, byte [eax + 3]
cmp bl, bh
jne case.default.0x43b0d2
movzx ebx, byte [edx + 4]
mov bh, byte [eax + 4]
cmp bl, bh
jne case.default.0x43b0d2
movzx ebx, byte [edx + 5]
mov bh, byte [eax + 5]
cmp bl, bh
jne case.default.0x43b0d2
movzx ebx, byte [edx + 6]
mov bh, byte [eax + 6]
cmp bl, bh
jne case.default.0x43b0d2
movzx ebx, byte [edx + 7]
mov bh, byte [eax + 7]
cmp bl, bh
jne case.default.0x43b0d2
xor edx, edx
xor ebx, ebx
test edx, edx
sete bl
jmp dword [ebx*4 + 0x446490]
movzx edi, bl
movzx ebx, bh
xor edx, edx
sub edi, ebx
sete dl
jmp dword [edx*4 + 0x446490]
inc ecx
add eax, 0x28
xor ebx, ebx
cmp cx, word [esi + 0x14]
setb bl
jmp dword [ebx*4 + 0x446488]
xor eax, eax
jmp dword [0x446474]
mov ecx, dword [case.0x43b0ed.5]
nop
nop
jmp ecx
xor ecx, ecx
mov edx, dword [ebp + 0x10]
test edx, edx
setne cl
jmp dword [ecx*4 + 0x4464a8]
mov ecx, dword [ebp + 8]
add ecx, dword [eax + 0xc]
mov dword [edx], ecx
nop
nop
nop
nop
nop
jmp dword [0x4464b8]
xor ecx, ecx
cmp dword [ebp + 0x14], 0
setne cl
mov dword [esi + 0x10], 0
jmp dword [ecx*4 + 0x4464c0]
mov eax, dword [eax + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov eax, dword [case.0x43b0ed.16]
nop
nop
nop
nop
nop
nop
jmp eax
mov al, 1
mov ecx, dword [esi + 0x10]
jmp dword [ecx*4 + 0x4464d8]
xor eax, eax
mov ecx, dword [case.0x439fb3.399]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
cmp dword [esi + 8], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x446448]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
add eax, ecx
mov edi, dword [esi + 0x14]
mov dword [edi], eax
mov eax, dword [eax]
mov dword [esi + 0x10], eax
mov dword [edx], 0xf3f288bc
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xb], 0
jmp dword [0x446454]
mov ecx, dword [case.0x43b0ed.26]
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
movzx eax, word [eax]
mov dword [esi + 8], 0xebd43b05
mov dword [esi + 0xc], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 7
ja 0x43b253
nop
nop
nop
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edi, byte [esi + ecx + 8]
lea ecx, [ebx + edi]
add ecx, 0x7e5d259d
add ebx, 0x9d
and ebx, edi
add ebx, ebx
mov edi, ecx
not edi
and edi, ebx
not ebx
and ebx, ecx
sub ebx, edi
mov dword [esi], ebx
mov ecx, dword [esi]
add cl, 0xb5
mov edi, dword [esi + 4]
mov byte [esi + edi + 8], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 8
jb 0x43b210
jmp dword [0x446444]
mov dword [esi + 8], 0xebd43b05
mov dword [esi + 0xc], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 7
ja case.0x439fb3.397
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edi, byte [esi + ecx + 8]
lea ecx, [eax + edi]
add ecx, 0x7e5d259d
add eax, 0x9d
and eax, edi
add eax, eax
mov edi, ecx
not edi
and edi, eax
not eax
and eax, ecx
sub eax, edi
mov dword [esi], eax
mov eax, dword [esi]
add al, 0xb5
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 8], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 8
jb 0x43b280
jmp case.0x439fb3.397
int3