Function at 0x442580
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov edi, dword [esp + 0x40]
movzx eax, word [edi]
mov dword [esp], 0xf0ee7d5
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 3
ja 0x4425ee
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx]
mov esi, ecx
xor esi, 0x52858942
and ecx, 0xd2858942
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
add cl, 0xb6
mov edx, dword [esp + 4]
mov byte [esp + edx], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 4
jb 0x4425b0
xor ecx, ecx
cmp dword [esp], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x44f9f0]
mov ebx, dword [edi + 0x3c]
mov ecx, dword [edi + ebx]
mov dword [esp + 0x14], 0x595a0014
mov byte [esp + 0x18], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 4
ja 0x442660
nop
nop
nop
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 + 0x14]
add edx, 0x3607b26f
xor edx, esi
mov dword [esp + 4], edx
mov edx, dword [esp + 4]
add dl, 0xd5
mov esi, dword [esp]
mov byte [esp + esi + 0x14], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 5
jb 0x442630
xor edx, edx
cmp ecx, dword [esp + 0x14]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x44f9f8]
mov edx, dword [edi + ebx + 0x78]
cmp dword [edi + ebx + 0x7c], 0
sete al
test edx, edx
sete cl
or cl, al
movzx ecx, cl
xor eax, eax
jmp dword [ecx*4 + 0x44fa00]
mov eax, dword [edi + edx + 0x20]
add eax, edi
mov dword [esp + 0x24], eax
mov eax, dword [edi + edx + 0x24]
add eax, edi
mov dword [esp + 0x20], eax
mov eax, dword [edi + edx + 0x1c]
add eax, edi
mov dword [esp + 0x1c], eax
mov esi, dword [0x451458]
xor eax, eax
test esi, esi
sete al
mov dword [esp + 0xc], edx
jmp dword [eax*4 + 0x44fa08]
mov eax, edi
mov edi, dword [0x451454]
mov eax, dword [eax + edx + 0x18]
add eax, edi
mov ecx, 0xffffffff
cmp eax, 0x20000000
jae 0x4426e6
shl eax, 3
mov ecx, eax
push ecx
call fcn.0040c630
add esp, 4
mov ebp, eax
mov ecx, edi
and ecx, 0xfffffff7
mov eax, edi
and eax, 8
or edi, 8
imul edi, eax
xor eax, 8
imul eax, ecx
lea ebx, [eax + edi]
lea edx, [esi + ebx]
cmp ebp, esi
jbe 0x4427f8
cmp edx, ebp
jbe 0x4427f8
test ebx, ebx
je 0x44277d
lea ecx, [esi + eax]
dec ecx
lea edx, [eax + ebp]
dec edx
neg eax
nop
nop
nop
nop
nop
movzx ebx, byte [ecx + edi]
mov byte [edx + edi], bl
movzx ebx, byte [ecx + edi - 1]
mov byte [edx + edi - 1], bl
movzx ebx, byte [ecx + edi - 2]
mov byte [edx + edi - 2], bl
movzx ebx, byte [ecx + edi - 3]
mov byte [edx + edi - 3], bl
movzx ebx, byte [ecx + edi - 4]
mov byte [edx + edi - 4], bl
movzx ebx, byte [ecx + edi - 5]
mov byte [edx + edi - 5], bl
movzx ebx, byte [ecx + edi - 6]
mov byte [edx + edi - 6], bl
movzx ebx, byte [ecx + edi - 7]
mov byte [edx + edi - 7], bl
add edi, 0xfffffff8
cmp eax, edi
jne 0x442730
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x44fa10]
mov dword [0x451458], ebp
xor edx, edx
xor eax, eax
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], 0
cmp edx, dword [edi + ecx + 0x18]
setb al
xor ebx, ebx
jmp dword [eax*4 + 0x44fa18]
mov ecx, ebx
shr ecx, 2
mov edi, ebp
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov edi, ebp
add edi, ebx
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov esi, dword [0x451458]
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x44fa10]
push esi
call fcn.0040c640
add esp, 4
mov dword [0x451458], ebp
xor edx, edx
xor eax, eax
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], 0
cmp edx, dword [edi + ecx + 0x18]
setb al
xor ebx, ebx
jmp dword [eax*4 + 0x44fa18]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
movzx eax, word [eax + ebx*2]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + eax*4]
mov dword [0x45145c], eax
inc ebx
xor eax, eax
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
cmp ebx, dword [edi + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x44fa18]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], ebx
mov ecx, dword [eax + ebx*4]
add ecx, edi
mov ebx, 0xffffffff
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
cmp byte [ecx + ebx + 1], 0
lea ebx, [ebx + 1]
lea eax, [eax + 1]
jne 0x4428b0
mov dword [esp + 0x14], 0x424644b9
mov byte [esp + 0x18], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x44290e
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x14]
add eax, 0x40837d71
xor eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xcb
mov edx, dword [esp]
mov byte [esp + edx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x4428e0
mov eax, 0xb14a5e2
test ebx, ebx
mov dword [esp + 0x28], ecx
je 0x442990
mov ebp, dword [esp + 0x14]
lea eax, [ebx - 1]
mov edx, 0xb14a5e2
mov edi, ecx
cmp eax, 3
jb 0x44296b
mov eax, esi
and eax, 0xfffffffc
mov edi, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ecx, byte [edi]
xor ecx, edx
imul ecx, ebp
movsx edx, byte [edi + 1]
xor edx, ecx
imul edx, ebp
movsx ecx, byte [edi + 2]
xor ecx, edx
imul ecx, ebp
movsx edx, byte [edi + 3]
add edi, 4
xor edx, ecx
imul edx, ebp
add eax, 0xfffffffc
jne 0x442940
mov eax, edx
test bl, 3
je 0x442990
and esi, 3
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx eax, byte [edi + ebx]
xor eax, edx
imul eax, ebp
inc ebx
mov edx, eax
cmp esi, ebx
jne 0x442980
mov ecx, eax
xor ecx, 0x43ac3278
xor edx, edx
or ecx, dword [0x45145c]
sete dl
jmp dword [edx*4 + 0x44fa20]
xor edx, edx
mov ecx, dword [esp + 0x28]
cmp byte [ecx], 0x4e
setne dl
mov ebx, dword [esp + 0x10]
jmp dword [edx*4 + 0x44fa28]
xor edx, edx
cmp byte [ecx + 1], 0x74
setne dl
jmp dword [edx*4 + 0x44fa30]
mov ecx, dword [esp + 0x20]
movzx ecx, word [ecx + ebx*2]
mov edx, dword [esp + 0x1c]
mov ebp, dword [edx + ecx*4]
add ebp, dword [esp + 0x40]
xor edx, edx
mov esi, dword [case.0x44281f.18]
xor ebx, ebx
cmp edx, 0x20
setb bl
mov edi, 0xffffffff
jmp dword [ebx*4 + 0x44fa38]
movzx ebx, byte [ebp + edx]
xor ecx, ecx
cmp bl, 0xc2
sete cl
jmp dword [ecx*4 + 0x44fa40]
xor ecx, ecx
cmp bl, 0xc3
sete cl
jmp dword [ecx*4 + 0x44fa48]
jmp esi
xor ecx, ecx
cmp bl, 0xb8
sete cl
jmp dword [ecx*4 + 0x44fa60]
inc edx
xor ebx, ebx
cmp edx, 0x20
setb bl
jmp dword [ebx*4 + 0x44fa38]
xor ecx, ecx
cmp edi, 0xffffffff
setne cl
mov ebx, dword [esp + 0x10]
jmp dword [ecx*4 + 0x44fa68]
mov edi, dword [ebp + edx + 1]
xor ecx, ecx
cmp edi, 0xffffffff
setne cl
mov ebx, dword [esp + 0x10]
jmp dword [ecx*4 + 0x44fa68]
xor ecx, ecx
xor ebx, ebx
cmp ecx, dword [0x451454]
setb bl
xor edx, edx
jmp dword [ebx*4 + 0x44fa70]
mov ebp, dword [0x451458]
xor ebx, ebx
cmp dword [ebp + edx*8], eax
sete bl
mov esi, 1
jmp dword [ebx*4 + 0x44fa78]
mov dword [ebp + edx*8 + 4], edi
mov ebx, dword [case.0x44281f.26]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor esi, esi
mov cl, 1
jmp ebx
mov ebx, dword [case.0x44281f.34]
nop
nop
nop
nop
jmp ebx
jmp dword [esi*4 + 0x44faa0]
add edx, 0x1488f0fa
mov esi, edx
xor esi, 0x1488f0f9
and edx, 0xeb770f06
add edx, edx
sub edx, esi
xor ebx, ebx
cmp edx, dword [0x451454]
setb bl
jmp dword [ebx*4 + 0x44fa70]
and cl, 1
movzx ecx, cl
mov dl, 1
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x10]
jmp dword [ecx*4 + 0x44faa8]
mov ecx, dword [0x451454]
mov edx, ecx
and edx, 1
mov esi, ecx
xor esi, 1
add esi, ecx
add esi, edx
mov edx, ecx
and edx, 0xfffffffe
sub esi, edx
mov dword [0x451454], esi
mov edx, dword [0x451458]
mov dword [edx + ecx*8], eax
mov dword [edx + ecx*8 + 4], edi
mov al, 1
mov dword [esp + 8], eax
inc ebx
xor eax, eax
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
cmp ebx, dword [edi + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x44fa18]
mov eax, dword [esp + 8]
and al, 1
mov ecx, dword [case.0x44281f.43]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
jmp dword [ebp*4 + 0x44fea4]
mov ebx, dword [esi + 0x30]
xor ecx, ecx
test ebx, ebx
setne cl
mov ebp, 1
jmp dword [ecx*4 + 0x44fe74]
mov ebp, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [ebp]
lea edi, [ecx - 0x41]
cmp di, 0x1a
jae 0x443c50
or ecx, 0x20
movzx edi, word [ebx]
lea edx, [edi - 0x41]
cmp dx, 0x1a
jae 0x443c5f
or edi, 0x20
test cx, cx
je 0x443c6f
add ebp, 2
add ebx, 2
cmp cx, di
je 0x443c40
xor edx, edx
cmp cx, di
sete dl
mov edi, dword [esp + 0xc]
mov ebp, 1
jmp dword [edx*4 + 0x44fe7c]
jmp dword [0x44fe90]
mov eax, dword [esi + 0x18]
xor ecx, ecx
jmp dword [ecx*4 + 0x44fea4]
int3
jmp dword [0x44feb8]
mov ecx, dword [eax + 8]
jmp dword [0x44feb8]
xor ecx, ecx
xor edx, edx
test ecx, 0
sete dl
jmp dword [edx*4 + 0x44fedc]
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
jmp dword [0x44fef0]
mov ecx, 1
jmp dword [ecx*4 + 0x44fed4]
xor ebx, ebx
cmp dword [esp + 8], eax
sete bl
xor edx, edx
jmp dword [ebx*4 + 0x44fec4]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x44fedc]
mov eax, dword [ecx + 0x3c]
mov esi, dword [ecx + eax]
mov dword [esp], 0x7372bca0
mov dword [esp + 4], 0
mov edi, dword [esp + 4]
cmp edi, 3
ja 0x443e05
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 4]
mov ebx, dword [esp + 4]
movzx ebx, byte [esp + ebx]
mov ebp, edi
not ebp
or ebp, 0x3571f294
add ebp, edi
xor edi, 0x3571f294
lea edi, [edi + ebp*2]
add edi, 2
xor edi, ebx
mov dword [esp + 8], edi
mov ebx, dword [esp + 8]
add bl, 0x1c
mov edi, dword [esp + 4]
mov byte [esp + edi], bl
inc dword [esp + 4]
mov edi, dword [esp + 4]
cmp edi, 4
jb 0x443dc0
mov edi, dword [esp]
xor ebx, ebx
cmp esi, edi
sete bl
jmp dword [ebx*4 + 0x44fecc]
mov eax, dword [ecx + eax + 0x50]
mov edx, 1
xor ecx, ecx
jmp dword [ecx*4 + 0x44fed4]
movzx eax, word [ecx]
mov dword [esp + 8], 0x7776afbd
mov byte [esp + 0xc], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 4
ja 0x443e95
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 8]
mov edi, edx
xor edi, 0xf81948be
mov ebx, edx
xor ebx, 0x7e6b741
or edx, 0x781948be
and edx, ebx
lea edx, [edi + edx*2]
xor edx, esi
mov dword [esp + 4], edx
mov edx, dword [esp + 4]
add dl, 0x4a
mov esi, dword [esp]
mov byte [esp + esi + 8], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 5
jb 0x443e50
jmp dword [0x44fec0]
mov dword [esp + 8], 0x7776afbd
mov byte [esp + 0xc], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja case.0x44281f.90
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 8]
mov esi, eax
xor esi, 0xf81948be
mov edi, eax
xor edi, 0x7e6b741
or eax, 0x781948be
and eax, edi
lea eax, [esi + eax*2]
xor eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x4a
mov edx, dword [esp]
mov byte [esp + edx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x443ec0
jmp case.0x44281f.90
int3
mov eax, dword [esi + 0x30]
xor edi, edi
jmp dword [edi*4 + 0x44ff1c]
mov esi, dword [esi]
xor ebx, ebx
cmp esi, edx
setne bl
jmp dword [ebx*4 + 0x44ff0c]
mov edi, 1
jmp dword [edi*4 + 0x44ff1c]
xor edx, edx
test ecx, ecx
sete dl
jmp dword [edx*4 + 0x44ff34]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [case.0x44281f.142]
mov edi, dword [edx]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44ff3c]
mov eax, dword [edi + 0x28]
xor ebx, ebx
jmp dword [ebx*4 + 0x44ff5c]
mov edi, dword [edi]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44ff3c]
jmp esi
xor ebx, ebx
cmp dword [edi + 0x18], ecx
sete bl
jmp dword [ebx*4 + 0x44ff54]
mov ebx, 1
jmp dword [ebx*4 + 0x44ff5c]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x3c]
add esp, 0x10
pop esi
pop edi
pop ebx
ret
int3
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov edi, dword [eax + ecx*4]
add edi, ebp
mov eax, 0xffffffff
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
lea edx, [edx + 1]
jne 0x444280
mov dword [esp + 4], 0xd6d6c857
mov word [esp + 8], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 5
ja 0x4442f2
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 4]
mov ebx, edx
xor ebx, 0x4c6e6bae
and edx, 0xcc6e6bae
lea edx, [ebx + edx*2]
lea ebx, [edx + esi]
and edx, esi
add edx, edx
sub ebx, edx
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0xc]
add dl, 0x9a
mov esi, dword [esp]
mov byte [esp + esi + 4], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 6
jb 0x4442b0
test eax, eax
je 0x444310
mov ebx, dword [esp + 4]
lea edx, [eax - 1]
cmp edx, 3
jae 0x444320
mov esi, 0xb14a5e2
jmp 0x44435f
mov edx, 0xb14a5e2
jmp 0x444380
mov edx, ecx
and edx, 0xfffffffc
mov esi, 0xb14a5e2
nop
nop
nop
nop
nop
nop
movsx ebp, byte [edi]
xor ebp, esi
imul ebp, ebx
movsx esi, byte [edi + 1]
xor esi, ebp
imul esi, ebx
movsx ebp, byte [edi + 2]
xor ebp, esi
imul ebp, ebx
movsx esi, byte [edi + 3]
add edi, 4
xor esi, ebp
imul esi, ebx
add edx, 0xfffffffc
jne 0x444330
mov ebp, dword [esp + 0x40]
mov edx, esi
test al, 3
je 0x444380
and ecx, 3
xor eax, eax
nop
nop
nop
nop
nop
nop
movsx edx, byte [edi + eax]
xor edx, esi
imul edx, ebx
inc eax
mov esi, edx
cmp ecx, eax
jne 0x444370
xor eax, eax
cmp edx, dword [esp + 0x44]
setne al
jmp dword [eax*4 + 0x44ffa4]
mov ecx, dword [esp + 0x14]
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
xor eax, eax
mov edi, dword [esp + 0x10]
cmp ecx, dword [ebp + edi + 0x18]
setb al
jmp dword [eax*4 + 0x44ff9c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + eax*4]
xor ecx, ecx
mov esi, dword [esp + 0x10]
cmp eax, esi
setae cl
jmp dword [ecx*4 + 0x44ffdc]
mov ecx, eax
and ecx, 0x3a8b7e96
mov edx, eax
xor edx, 0xba8b7e96
sub edx, esi
lea ecx, [edx + ecx*2]
add ecx, 0x4574816a
xor edx, edx
cmp ecx, dword [esp + 0x18]
setb dl
jmp dword [edx*4 + 0x44ffe4]
add ebp, eax
xor ecx, ecx
mov eax, ebp
jmp dword [ecx*4 + 0x44fffc]
mov eax, dword [case.0x44281f.166]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [esp + 0x24]
jmp dword [ecx*4 + 0x44fffc]
xor eax, eax
jmp case.0x4441f6.1
int3
mov ecx, ebp
mov edx, dword [ebp + 0x3c]
mov ecx, dword [ebp + edx]
mov dword [esp + 4], 0xd7d68498
mov word [esp + 8], 0
mov dword [esp], 0
mov esi, dword [esp]
cmp esi, 5
ja 0x44456b
mov esi, dword [esp]
mov edi, dword [esp]
movzx edi, byte [esp + edi + 4]
mov ebx, esi
xor ebx, 0x67f74e
and esi, 0x67f74e
lea esi, [ebx + esi*2]
xor esi, edi
mov dword [esp + 0xc], esi
mov ebx, dword [esp + 0xc]
add bl, 0x7a
mov esi, dword [esp]
mov byte [esp + esi + 4], bl
inc dword [esp]
mov esi, dword [esp]
cmp esi, 6
jb case.default.0x444574
xor ebx, ebx
cmp ecx, dword [esp + 4]
setne bl
jmp dword [ebx*4 + 0x45000c]
mov ecx, dword [ebp + edx + 0x80]
cmp dword [ebp + edx + 0x84], 0
sete al
test ecx, ecx
sete dl
or dl, al
movzx edx, dl
xor eax, eax
jmp dword [edx*4 + 0x450024]
mov ebx, ebp
mov esi, dword [ebp + ecx]
add esi, ebp
mov ecx, dword [ebp + ecx + 0x10]
add ecx, ebp
mov dword [esp + 0x10], ecx
add ebx, 2
mov ebp, dword [esi]
mov ecx, ebp
shr ecx, 0x1f
mov dword [esp + 0x18], ebx
jmp dword [ecx*4 + 0x45002c]
xor ecx, ecx
test ebp, ebp
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x450034]
add ebp, ebx
mov edx, 0xffffffff
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
cmp byte [ebp + edx + 1], 0
lea edx, [edx + 1]
lea eax, [eax + 1]
jne 0x4445f0
mov dword [esp + 0x14], esi
mov dword [esp + 4], 0xd6d6c857
mov word [esp + 8], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x444670
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 4]
mov edi, eax
xor edi, 0x4c6e6bae
and eax, 0xcc6e6bae
lea eax, [edi + eax*2]
lea edi, [eax + esi]
and eax, esi
add eax, eax
sub edi, eax
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0xc]
add al, 0x9a
mov esi, dword [esp]
mov byte [esp + esi + 4], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x444630
mov eax, 0xb14a5e2
test edx, edx
je 0x4446e1
mov edi, dword [esp + 4]
mov esi, 0xb14a5e2
cmp edx, 4
jb 0x4446c0
mov eax, ecx
and eax, 0xfffffffc
nop
nop
nop
nop
movsx ebx, byte [ebp]
xor ebx, esi
imul ebx, edi
movsx esi, byte [ebp + 1]
xor esi, ebx
imul esi, edi
movsx ebx, byte [ebp + 2]
xor ebx, esi
imul ebx, edi
movsx esi, byte [ebp + 3]
add ebp, 4
xor esi, ebx
imul esi, edi
add eax, 0xfffffffc
jne 0x444690
mov ebx, dword [esp + 0x18]
mov eax, esi
test dl, 3
je 0x4446e1
and ecx, 3
xor edx, edx
nop
nop
nop
nop
movsx eax, byte [ebp + edx]
xor eax, esi
imul eax, edi
inc edx
mov esi, eax
cmp ecx, edx
jne 0x4446d0
xor ecx, ecx
cmp eax, dword [esp + 0x38]
sete cl
jmp dword [ecx*4 + 0x45003c]
mov esi, dword [esp + 0x14]
add esi, 4
add dword [esp + 0x10], 4
mov ecx, 1
mov edx, dword [case.0x44281f.216]
mov eax, dword [esp + 0x1c]
jmp case.0x44281f.215
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [case.0x44281f.216]
mov esi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp edx
jmp dword [ecx*4 + 0x450054]
mov ebp, dword [esi]
mov ecx, ebp
shr ecx, 0x1f
mov dword [esp + 0x1c], eax
xor eax, eax
jmp dword [ecx*4 + 0x45002c]
mov ecx, dword [case.0x44281f.199]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
int3
push eax
push eax
mov ecx, esp
movzx eax, word [ebx]
mov dword [ebp - 0x20], 0xd1ce9583
mov word [ebp - 0x1c], 0
mov byte [ebp - 0x1a], 0
mov dword [ebp - 0x14], 0
mov edx, dword [ebp - 0x14]
cmp edx, 6
ja 0x4447fe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
movzx esi, byte [ebp + esi - 0x20]
mov edi, edx
xor edi, 0xccc0f4d
and edx, 0xccc0f4d
lea edi, [edi + edx*2]
mov edx, edi
and edx, esi
xor edi, esi
sub edi, edx
lea esi, [edi + edx*2]
mov edi, esi
xor edi, edx
not edx
and edx, esi
add edx, edx
sub edx, edi
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x10]
add dl, 0x7f
mov esi, dword [ebp - 0x14]
mov byte [ebp + esi - 0x20], dl
inc dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
cmp edx, 7
jb 0x4447b0
xor edx, edx
cmp dword [ebp - 0x20], eax
setne dl
xor eax, eax
jmp dword [edx*4 + 0x45007c]
mov esi, dword [ebx + 0x3c]
mov eax, dword [ebx + esi]
mov dword [ebp - 0x18], eax
mov dword [ecx], 0x111ed8ec
mov word [ecx + 4], 0
mov byte [ecx + 6], 0
mov dword [ebp - 0x10], 0
mov edi, dword [ebp - 0x10]
cmp edi, 6
ja 0x44488a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0x10]
movzx edi, byte [ecx + edi]
mov edx, eax
or edx, 0x44e56eba
mov ebx, eax
not ebx
or ebx, 0xbb1a9145
and ebx, edx
not ebx
and eax, 0x3b1a9145
lea eax, [ebx + eax*2]
lea edx, [eax + edi]
and eax, edi
add eax, eax
sub edx, eax
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
add al, 0xa7
mov edx, dword [ebp - 0x10]
mov byte [ecx + edx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 7
jb 0x444840
xor edx, edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ecx]
setne dl
xor eax, eax
mov ecx, dword [ebp + 8]
jmp dword [edx*4 + 0x450084]
add esi, ecx
movzx eax, word [esi + 0x14]
lea ebx, [esi + eax]
add ebx, 0x18
movzx ecx, word [esi + 6]
mov eax, dword [case.0x444899.4]
mov dword [ebp - 0x2c], eax
xor esi, esi
xor eax, eax
mov word [ebp - 0x22], cx
cmp si, cx
setb al
mov dword [ebp - 0x28], 1
mov edx, dword [ebp + 0xc]
jmp dword [eax*4 + 0x45008c]
mov dword [ebp - 0x18], esi
jmp dword [ebp - 0x2c]
mov ecx, 8
mov edi, edx
mov eax, ebx
nop
sub ecx, 1
jb case.0x444899.4
movzx edx, byte [edi]
inc edi
lea esi, [eax + 1]
cmp dl, byte [eax]
mov edx, dword [ebp + 0xc]
mov eax, esi
je 0x4448f0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edx]
mov ch, byte [ebx]
cmp cl, ch
jne 0x444970
movzx ecx, byte [edx + 1]
mov ch, byte [ebx + 1]
cmp cl, ch
jne 0x444970
movzx ecx, byte [edx + 2]
mov ch, byte [ebx + 2]
cmp cl, ch
jne 0x444970
movzx ecx, byte [edx + 3]
mov ch, byte [ebx + 3]
cmp cl, ch
jne 0x444970
movzx ecx, byte [edx + 4]
mov ch, byte [ebx + 4]
cmp cl, ch
jne 0x444970
movzx ecx, byte [edx + 5]
mov ch, byte [ebx + 5]
cmp cl, ch
jne 0x444970
movzx ecx, byte [edx + 6]
mov ch, byte [ebx + 6]
cmp cl, ch
jne 0x444970
movzx ecx, byte [edx + 7]
mov ch, byte [ebx + 7]
xor edi, edi
cmp cl, ch
je 0x444978
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, cl
movzx eax, ch
sub edi, eax
jmp dword [0x45009c]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4500a4]
mov esi, dword [ebp - 0x18]
mov eax, esi
xor eax, 1
and esi, 1
lea esi, [eax + esi*2]
add ebx, 0x28
xor eax, eax
cmp si, word [ebp - 0x22]
setb al
jmp dword [eax*4 + 0x45008c]
xor eax, eax
mov ecx, dword [ebp + 0x10]
test ecx, ecx
setne al
jmp dword [eax*4 + 0x4500ac]
mov eax, dword [ebp + 8]
add eax, dword [ebx + 0xc]
mov dword [ecx], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x4500c0]
xor eax, eax
cmp dword [ebp + 0x14], 0
setne al
mov dword [ebp - 0x28], 0
jmp dword [eax*4 + 0x4500c4]
mov al, 1
mov ecx, dword [ebp - 0x28]
jmp dword [ecx*4 + 0x4500cc]
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
xor ecx, ecx
mov al, 1
jmp dword [ecx*4 + 0x4500cc]
int3
sub byte [eax + eax - 0x75], al
daa
inc esp
add byte [edi + 0x2b], dh
inc esp
add byte [ecx - 0x55ffbbd8], dl
sub dword [eax + eax + 0x60], eax
sub byte [eax + eax - 0x3f], al
sub dword [eax + eax + 0x78], eax
sub byte [eax + eax - 0x2f], al
sub dword [eax + eax + 0x78], eax
sub byte [eax + eax + 0x51], al
sub al, byte [eax + eax]
sub al, byte [eax + eax + 0x14]
sub al, byte [eax + eax + 0x51]
sub al, byte [eax + eax + 0x30]
sub al, byte [eax + eax + 0x51]
sub al, byte [eax + eax + 0x30]
sub al, byte [eax + eax + 0x30]
sub al, byte [eax + eax + 0x32]
sub al, byte [eax + eax + 0x30]
sub al, byte [eax + eax + 0x41]
sub al, byte [eax + eax + 0x64]
sub al, byte [eax + eax + 0x78]
sub byte [eax + eax + 0x7b], al
sub al, byte [eax + eax + 0x13]
sub eax, dword [eax + eax - 0x60]
sub al, byte [eax + eax - 0x2a]
sub al, byte [eax + eax - 0x45]
sub al, byte [eax + eax - 0x30]
sub al, byte [eax + eax - 0x30]
sub al, byte [eax + eax - 0x30]
sub al, byte [eax + eax - 0x2a]
sub al, byte [eax + eax - 0x20]
sub al, byte [eax + eax - 0x20]
sub al, byte [eax + eax - 0x1e]
sub al, byte [eax + eax - 0x20]
sub al, byte [eax + eax + 0x13]
sub eax, dword [eax + eax - 0x17]
sub al, byte [eax + eax + 0x2a]
sub eax, dword [eax + eax + 0x78]
sub byte [eax + eax - 0x70], al
sub eax, dword [eax + eax - 0x70]
sub eax, dword [eax + eax - 0x70]
sub eax, dword [eax + eax - 0x6e]
sub eax, dword [eax + eax + 0x40]
cmp eax, dword [eax + eax - 0x53]
cmp al, 0x44
add byte [ebp - 0x52ffbbc4], ch
cmp al, 0x44
add byte [ebp - 0x52ffbbc4], ch
cmp al, 0x44
add byte [ebp - 0x52ffbbc4], ch
cmp al, 0x44
add byte [ebp - 0x52ffbbc4], ch
cmp al, 0x44
add byte [edx - 0x5dffbbc4], ah
cmp al, 0x44
add byte [edx - 0x2bffbbc4], ah
cmp eax, dword [eax + eax - 0x2c]
cmp eax, dword [eax + eax - 0x2c]
cmp eax, dword [eax + eax - 0x10]
cmp eax, dword [eax + eax - 0x10]
cmp eax, dword [eax + eax - 0x10]
cmp eax, dword [eax + eax + 7]
cmp al, 0x44
add byte [edi], al
cmp al, 0x44
add byte [edi], al
cmp al, 0x44
add byte [ecx], al
add byte [eax], al
add byte [ebp - 0x5affbbc4], ch
cmp al, 0x44
add byte [edi], dl
cmp al, 0x44
add byte [0x9000443c], ch
cmp al, 0x44
add byte [eax - 0x69ffbbc4], dl
cmp al, 0x44
add byte [eax], al
cmp al, 0x44
add byte [eax], al
cmp al, 0x44
add byte [ecx], al
add byte [eax], al
add byte [eax], al
cmp al, 0x44
add byte [edi], al
cmp al, 0x44
add byte [edi], al
cmp al, 0x44
add byte [ebp - 0x5affbbc4], ah
cmp al, 0x44
add al, dh
cmp eax, dword [eax + eax + 1]
add byte [eax], al
add byte [eax + 0x100443c], dl
add byte [eax], al
add byte [eax], cl
aas
inc esp
add byte [eax], cl
aas
inc esp
add byte [edi + 0x3d2e0044], dh
inc esp
add byte [eax], ch
inc esp
add byte [ebp + edi + 0x44], dh
add byte [ebp + edi + 0x3d940044], dl
inc esp
add byte [edi - 0x68ffbbc3], dl
cmp eax, 0x3f080044
inc esp
add byte [eax], cl
aas
inc esp
add byte [esi], dl
inc esp
add byte [esi], dl
inc esp
add byte [esi], dl
inc esp
add byte [eax + 0x3d], ch
inc esp
add byte [eax + 0x3d], ch
inc esp
add byte [0x8600443d], bh
cmp eax, 0x3d600044
inc esp
add byte [eax + 0x3d], ah
inc esp
add byte [ecx + 0x3d], dl
inc esp
add byte [ecx + 0x3d], dl
inc esp
add byte [ebx + 0x6000443e], bl
cmp eax, 0x3f8e0044
inc esp
add byte [esi - 0x5fffbbc1], cl
aas
inc esp
add byte [eax - 0x5dffbbc1], ah
aas
inc esp
add byte [edx - 0x33ffbbc1], ah
aas
inc esp
add bh, dh
aas
inc esp
add ah, bl
aas
inc esp
add al, al
aas
inc esp
add bl, ch
aas
inc esp
add bl, ch
aas
inc esp
add ah, cl
aas
inc esp
add ah, cl
aas
inc esp
add bh, dh
aas
inc esp
add byte [eax + 0x7e00443f], ah
inc eax
inc esp
add byte [edx], cl
inc ecx
inc esp
add byte [eax - 0x6fffbbc0], dl
inc eax
inc esp
add byte [edx - 0x6dffbbc0], dl
inc eax
inc esp
add byte [edx - 0x2ffbbc0], dl
inc eax
inc esp
add ch, bh
inc eax
inc esp
add ch, bh
inc eax
inc esp
add byte [eax - 0x35ffbbc0], ah
inc eax
inc esp
add byte [ebx], al
inc ecx
inc esp
add al, ah
inc eax
inc esp
add al, ah
inc eax
inc esp
add dl, ah
inc eax
inc esp
add byte [esi - 0x41ffbbc0], bh
inc eax
inc esp
add byte [esi - 0x41ffbbc0], bh
inc eax
inc esp
add byte [esi - 0xeffbbc0], bh
inc eax
inc esp
add cl, dh
inc eax
inc esp
add dl, cl
inc eax
inc esp
add byte [ebx], al
inc ecx
inc esp
add byte [ebx], al
inc ecx
inc esp
add byte [eax - 0x1fffbbc0], dl
inc eax
inc esp
add al, al
inc ebx
inc esp
add al, al
inc ebx
inc esp
add al, cl
inc ebx
inc esp
add byte [ebx - 0x37ffbbbf], cl
inc ebx
inc esp
add ch, bh
inc ecx
inc esp
add al, dl
inc ebx
inc esp
add al, ah
inc ebx
inc esp
add al, cl
inc ebx
inc esp
add byte [edi], bl
inc edx
inc esp
add byte [esp + eax*2 + 0x44], ah
add byte [edx + 0x44], dl
inc esp
add byte [eax + 0x42], ah
inc esp
add dl, ah
inc ebx
inc esp
add dl, ah
inc ebx
inc esp
add byte [ecx], al
add byte [eax], al
add dl, ah
inc ebx
inc esp
add dl, ah
inc ebx
inc esp
add dl, ah
inc ebx
inc esp
add byte [ecx], al
add byte [eax], al
add dl, ah
inc ebx
inc esp
add dl, ah
inc ebx
inc esp
add byte [ecx], al
add byte [eax], al
add byte [esp + eax*2 + 0x44], ah
add byte [edi], al
inc esp
inc esp
add byte [edi], bh
inc esp
inc esp
add byte [eax + 0x44], dl
inc esp
add byte [edx + 0x44], dl
inc esp
add byte [edx], dh
inc esp
inc esp
add byte [edx], dh
inc esp
inc esp
add byte [edx + 0x44], dl
inc esp
add byte [eax + 0x52004443], dl
inc esp
inc esp
add byte [ebp + 0x44], bl
inc esp
add al, cl
inc ebx
inc esp
add al, cl
inc ebx
inc esp
add al, cl
inc ebx
inc esp
add al, cl
inc ebx
inc esp
add al, al
inc ebx
inc esp
add al, ah
inc ebx
inc esp
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax + 0x44], dl
inc esp
add byte [edx + 0x47], ah
inc esp
add byte [ecx], cl
inc ebp
inc esp
add byte [edx + 0x47], ah
inc esp
add byte [ebx + 0x45], bh
inc esp
add byte [ecx], al
add byte [eax], al
add byte [ebx + 0x45], bh
inc esp
add byte [ebp + 0x47], cl
inc esp
add byte [eax + 0x39004445], ah
inc edi
inc esp
add al, dl
inc ebp
inc esp
add al, ah
inc ebp
inc esp
add byte [eax], dl
inc edi
inc esp
add cl, dh
inc esi
inc esp
add cl, dh
inc esi
inc esp
add cl, dh
inc esi
inc esp
add byte [edx + 0x47], ch
inc esp
add byte [eax], dh
inc edi
inc esp
add byte [edx], dh
inc edi
inc esp
add byte [ebp + 0x47], cl
inc esp
add byte [ebp + 0x47], cl
inc esp
add byte [ebp + 0x47], cl
inc esp
add byte [eax + 0x47], ah
inc esp
add byte [edx + 0x47], ah
inc esp
add byte [edx + 0x47], ah
inc esp
add byte [edx + 0x47], ah
inc esp
add byte [ecx], al
add byte [eax], al
add byte [edx + 0x47], ah
inc esp
add byte [ecx], al
add byte [eax], al
add byte [eax], dh
inc edi
inc esp
add byte [eax + 0x47], ah
inc esp
add byte [ecx], al
add byte [eax], al
add byte [edi + eax*2 + 0x44], bh
add byte [eax - 0x7fffbbb9], al
inc edi
inc esp
add byte [eax - 0x7fffbbb9], al
inc edi
inc esp
add byte [edi + eax*2 + 0x4a160044], dl
inc esp
add byte [esi], dl
dec edx
inc esp
add byte [esi], dl
dec edx
inc esp
add byte [esi], dl
dec edx
inc esp
add byte [esi], dl
dec edx
inc esp
add bl, bh
dec ecx
inc esp
add byte [edi], cl
dec eax
inc esp
add bl, bh
dec ecx
inc esp
add byte [eax - 0x5fffbbb8], ah
dec eax
inc esp
add byte [eax + 0x16004448], ah
dec edx
inc esp
add ch, ch
dec ecx
inc esp
add al, ah
dec eax
inc esp
add byte [eax], dl
dec ecx
inc esp
add byte [esi + 0x49], bh
inc esp
add byte [ebp - 0x41ffbbb7], ch
dec ecx
inc esp
add al, dl
dec ecx
inc esp
add al, dl
dec ecx
inc esp
add dh, dl
dec ecx
inc esp
add byte [ebx], al
dec edx
inc esp
add ch, ch
dec ecx
inc esp
add byte [ecx + ecx*2 + 0x498c0044], cl
inc esp
add byte [ecx + ecx*2 + 0x49ed0044], cl
inc esp
add cl, bh
dec ecx
inc esp
add bl, bh
dec ecx
inc esp
add bl, bh
dec ecx
inc esp
add bl, bh
dec ecx
inc esp
add dh, ah
dec eax
inc esp
add al, dl
dec ecx
inc esp
add ah, dl
inc ebp