Function at 0x408584
Capabilities:
Packed with generic packer

Disassembly:
mov dx, word [0x435800]
movzx eax, dx
mov si, ax
mov dword [ebp - 4], eax
cmp si, 0x3e
je 0x404e83
cmp si, 0x3c
je 0x404e83
movzx eax, dx
push eax
call dword [0x442090]
add esp, 4
test eax, eax
jne 0x405154
test edi, edi
jne 0x404f30
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x18
call fcn.00401e20
mov dword [ebx], eax
test eax, eax
je 0x41dd49
mov word [eax + 0x10], si
mov ecx, 0x435800
movzx eax, word [0x435800]
inc edi
push eax
mov dword [ebp - 4], ecx
call dword [0x442090]
add esp, 4
test eax, eax
mov eax, dword [ebx]
jne 0x40516a
mov ecx, dword [ebp - 4]
cmp si, 0x3e
jne 0x412664
mov dword [eax], 1
mov ax, word [ecx]
lea edx, [ecx + 2]
mov dword [ebp - 4], edx
cmp ax, word [edx]
jne 0x404ef5
cmp si, 0x3c
je 0x4169c2
mov eax, dword [ebx]
mov ecx, edx
mov dword [eax + 0xc], 1
add ecx, 2
mov dword [ebp - 4], ecx
cmp word [ecx], 0x26
je 0x408562
call fcn.00404da1
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
call fcn.004046cf
test eax, eax
je 0x404551
xor ecx, ecx
call fcn.0040441e
mov ebx, dword [ebx]
add ebx, 0x14
inc dword [ebp - 8]
jmp 0x404518
cmp dword [ebp - 8], edi
jne 0x404f40
push 0
xor edx, edx
xor ecx, ecx
call fcn.00403b4e
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov si, word [0x435802]
cmp si, 0x3e
jne 0x41dd3a
jmp 0x404e83
movzx ecx, word [0x435800]
sub ecx, 0x30
mov dword [eax], ecx
mov ecx, 0x435802
jmp 0x404ed2
mov edx, ecx
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x408567
sub edx, esi
sar edx, 1
cmp edx, 2
jne 0x41266f
movzx eax, word [ecx + 2]
push eax
call dword [0x442090]
add esp, 4
test eax, eax
je 0x41266f
mov ecx, dword [ebp - 4]
call fcn.00402508
mov ecx, dword [ebx]
mov dword [ecx + 4], eax
test eax, eax
jne 0x404f0f
jmp 0x41266f
add byte [ebx - 0x2bda0040], cl
mov esp, 0xc08b0066
jmp dword [0x66bca4]
sar bh, 0x25
movsb byte es:[edi], byte [esi]
mov esp, 0xc08b0066
jmp dword [0x66bb64]
pop es
add al, byte [edx]
add al, byte [edi]
pop es
pop es
pop es
add al, byte [edx]
or al, 7
or cl, byte [edx]
or al, 0xc
or al, 0xa
or al, 7
pop es
pop es
pop es
adc eax, 0x15151515
adc eax, 0x2151515
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
invalid
add al, byte [edx]
add al, byte [edx]
or al, 0xc
add al, byte [edi]
pop es
pop es
add al, byte [edx]
add al, byte [edx]
add cl, byte [edi]
invalid
add dword [ecx], eax
add al, byte [eax]
add al, byte [eax]
sub eax, 0x4290bc00
add byte [0x65657246], cl
inc ebp
inc ebp
outsb dx, byte [esi]
arpl word [edi + 0x64], bp
imul ebp, dword [esi + 0x67], 0x373
add byte [eax], al
add byte [eax], cl
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add al, byte [eax]
aaa
add byte [eax + ebx*4 + 0x42], bh
add byte [edx], dl
dec ecx
jae 0x41ddca
je 0x41ddda
outsb dx, byte [esi]
popal
jb 0x41dde2
inc ebp
outsb dx, byte [esi]
arpl word [edi + 0x64], bp
imul ebp, dword [esi + 0x67], 0x10000003
inc eax
add byte [eax], cl
add byte [ecx], al
or byte [eax - 0x16], al
inc ecx
add byte [eax], al
add byte [ecx], cl
inc ecx
inc ebp
outsb dx, byte [esi]
arpl word [edi + 0x64], bp
imul ebp, dword [esi + 0x67], 0x20002
inc esi
add byte [eax], ah
fsub qword [ebp]
adc dword [edi + 0x65], eax
je 0x41ddf1
jne 0x41de17
jb 0x41ddfa
outsb dx, byte [esi]
arpl word [edi + 0x64], bp
imul ebp, dword [esi + 0x67], 0x109c0003
inc eax
add byte [eax], cl
add byte [edx], al
add dh, byte [edx + esi]
inc eax
add byte [eax], al
add byte [esi], al
add byte [eax], al
push es
inc edx
jne 0x41de36
jb 0x41ddd6
add byte [ecx], cl
inc eax
ljmp 0x4109
add dword [eax], eax
or dword [ecx + 0x45], eax
outsb dx, byte [esi]
arpl word [edi + 0x64], bp
imul ebp, dword [esi + 0x67], 0x20002
imul ebp, dword fs:[esi + 0x67], 0x20002
pushal
add al, ch
xchg ecx, eax
inc edx
add byte [ecx], dl
inc edi
je 0x41de37
jne 0x41de5d
jb 0x41de40
inc ebp
outsb dx, byte [esi]
arpl word [edi + 0x64], bp
imul ebp, dword [esi + 0x67], 0x109c0003
inc eax
add byte [eax], cl
add byte [ebx], al
add dh, byte [edx + esi]
inc eax
add byte [eax], al
add byte [esi], al
inc edx
jne 0x41de7c
jb 0x41de1c
jb 0x41de1c
add byte [ecx], cl
inc eax
ljmp 0x4109
inc ecx
inc esp
popaw
jne 0x41dea9
je 0x41de84
outsb dx, byte [esi]
arpl word [edi + 0x64], bp
imul ebp, dword [esi + 0x67], 0x20002
cmp eax, dword [eax]
and ah, bl
add byte gs:[edi + eax*2], cl
je 0x41de97
jns 0x41decb
inc ebx
outsd dx, dword [esi]
jne 0x41deca
je 0x41de61
add eax, dword [eax]
pushfd
adc byte [eax], al
or byte [eax], al
add byte [eax + edx + 0x80040], bl
inc eax
add byte [eax], cl
add byte [edx], al
or byte [eax - 0x16], al
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add cl, byte [eax + edx + 0x40]
add byte [ecx], al
add byte [0x72616843], al
jae 0x41de84
add cl, byte [eax]
inc eax
ljmp 0x5304
inc ebx
push 0x2737261
add byte [edx], al
add byte [ebx], bh
add byte [eax], ah
fsub qword [ebp]
or al, 0x47
je 0x41ded2
jns 0x41df06
inc ebx
outsd dx, dword [esi]
jne 0x41df05
je 0x41de9c
add byte [eax + edx + 0x80040], bl
add cl, byte [eax]
inc eax
inc eax
add byte [eax], cl
add byte [edx], al
or byte [eax - 0x16], al
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
ljmp 0x5304
push ebx
insb byte es:[edi], dx
add al, byte [eax]
push ss
dec esp
adc byte [eax], al
add dword [eax], eax
add eax, 0x72616843
jae 0x41debf
add byte [edx], al
add byte [ebx], bh
add byte [eax], ah
fsub qword [ebp]
or al, 0x47
je 0x41df0d
inc edx
jns 0x41df41
inc ebx
outsd dx, dword [esi]
jne 0x41df40
je 0x41ded7
add byte [eax + edx + 0x80040], bl
add cl, byte [eax]
inc eax
ljmp 0x5304
inc eax
add byte [eax], cl
add byte [edx], al
or byte [eax - 0x16], al
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add ch, byte [edx + esi + 0x40]
add byte [ecx], al
add byte [0x72616843], al
jae 0x41defa
add byte [edx], al
add byte [ecx], ah
and ah, bl
add byte gs:[edi + eax*2], cl
je 0x41df48
inc edx
jns 0x41df7c
inc ebx
outsd dx, dword [esi]
jne 0x41df7b
je 0x41df12
add byte [eax + edx + 0x100040], bl
add al, 8
inc eax
add byte [eax], dl
add byte [eax + ecx], al
inc eax
ljmp 0x5304
dec ecx
outsb dx, byte [esi]
js 0x41df48
add byte [eax], al
pushfd
adc byte [eax], al
or byte [eax], al
or dword [ebx + 0x68], eax
popal
jb 0x41df97
outsd dx, dword [esi]
jne 0x41dfc5
je 0x41df5b
add byte [edx], al
add byte [ecx], ah
and ah, bl
add byte gs:[edi + eax*2], cl
je 0x41dfa9
jns 0x41dfdd
inc ebx
outsd dx, dword [esi]
jne 0x41dfdc
je 0x41df73
add byte [eax + edx + 0xc0040], bl
inc eax
add byte [eax + eax], cl
add al, 8
inc eax
ljmp 0x5304
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add ch, byte [edx + esi + 0x40]
add byte [ecx], al
add byte [0x72616843], al
jae 0x41df96
add byte [eax], al
pushfd
adc byte [eax], al
add al, byte [eax]
or dword [ebx + 0x68], eax
popal
jb 0x41dfeb
outsb dx, byte [esi]
js 0x41dfa9
add byte [eax], al
pushfd
adc byte [eax], al
or byte [eax], al
or dword [ebx + 0x68], eax
popal
jb 0x41dff8
outsd dx, dword [esi]
jne 0x41e026
je 0x41dfbc
add byte [edx], al
add byte [edi], dh
add byte [eax], ah
fsub qword [ebp]
or al, 0x47
je 0x41e00a
jns 0x41e03e
inc ebx
outsd dx, dword [esi]
jne 0x41e03d
je 0x41dfd4
add byte [eax + edx + 0x80040], bl
add cl, byte [eax]
inc eax
ljmp 0x5304
inc eax
add byte [eax], cl
add byte [edx], al
or byte [eax - 0x16], al
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add bh, byte [eax + 0x1004012]
add byte [ecx], al
add byte [ecx], al
push ebx
add al, byte [eax]
add al, byte [eax]
pop ebp
add byte [eax], ah
fsub qword [ebp]
or al, 0x47
add byte gs:[edi + eax*2], cl
je 0x41e041
jns 0x41e075
inc ebx
outsd dx, dword [esi]
jne 0x41e074
je 0x41e00b
add byte [eax + edx + 0xc0040], bl
adc byte [eax], al
or al, 0
inc eax
add byte [eax + eax], cl
add al, 8
inc eax
ljmp 0x5304
push ebx
add al, byte [eax]
add byte [eax + edx + 0x20040], bl
or dword [ebx + 0x68], eax
popal
jb 0x41e07f
outsb dx, byte [esi]
js 0x41e03d
add byte [eax], al
pushfd
adc byte [eax], al
or byte [eax], al
or dword [ebx + 0x68], eax
popal
jb 0x41e08c
outsd dx, dword [esi]
jne 0x41e0ba
je 0x41e050
add byte [edx], al
add byte [esi], dh
and ah, bl
add byte gs:[edi + eax*2], cl
je 0x41e09e
jns 0x41e0d2
inc ebx
outsd dx, dword [esi]
jne 0x41e0d1
je 0x41e068
add byte [eax + edx + 0x100040], bl
add eax, 0x41ea4008
inc eax
add byte [eax], dl
add byte [0x41ea4008], al
add byte [eax], al
add byte [ebx + edx*2], al
add al, 0x53
push ebx
insb byte es:[edi], dx
add al, byte [eax]
add bh, byte [eax + 0x1004012]
add byte [ecx], al
add byte [ecx], al
push ebx
add al, byte [eax]
add byte [eax + edx + 0x20040], bl
or dword [ebx + 0x68], eax
popal
jb 0x41e0dc
add byte [ecx], cl
inc ebx
push 0x6e497261
outsb dx, byte [esi]
js 0x41e09a
add byte [eax], al
pushfd
adc byte [eax], al
or al, 0
or dword [ebx + 0x68], eax
popal
jb 0x41e0e9
outsd dx, dword [esi]
jne 0x41e117
je 0x41e0ad
add byte [edx], al
pushfd
adc byte [eax], al
or byte [eax], al
rcpps xmm6, xmmword [edx + esi*2 + 0x69]
outsb dx, byte [esi]
inc edx
inc edx
popal
jae 0x41e123
dec ecx
outsb dx, byte [esi]
js 0x41e0c6
add byte [edx], al
add byte [edx], al
and ah, bl
add byte gs:[eax], cl
inc edi
je 0x41e114
inc edx
jns 0x41e148
jae 0x41e0da
add byte [edx + esi], dh
inc eax
add byte [eax], cl
add byte [ebx], al
or byte [eax - 0x16], al
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
or byte [eax], al
add ecx, dword [eax]
inc eax
ljmp 0x5304
insb byte es:[edi], dx
add al, byte [eax]
add cl, byte [eax + edx + 0x40]
add byte [ecx], al
add byte [0x72616843], al
jae 0x41e0fd
add byte [eax + 0x34], al
xor al, byte [eax]
add al, byte [eax]
add dword [ecx], eax
add al, byte [eax]
add al, byte [eax]
xor al, 0x32
inc eax
add byte [edx], al
add byte [ecx], al
add dword [edx], eax
add byte [edx], al
add byte [edx], al
and ah, bl
add byte gs:[eax], cl
inc edi
je 0x41e156
inc edx
add byte [eax], ah
fsub qword [ebp]
or byte [edi + 0x65], al
je 0x41e156
jns 0x41e18a
jae 0x41e11c
jae 0x41e11c
add byte [edx + esi], dh
inc eax
add byte [eax + eax], cl
add ecx, dword [eax]
inc eax
ljmp 0x5304
add byte [edx], al
add byte [edx], al
and ah, bl
add byte gs:[eax], cl
inc edi
je 0x41e198
jns 0x41e1cc
jae 0x41e15e
add byte [edx + esi], dh
inc eax
add byte [eax], cl
add byte [ebx], al
or byte [eax - 0x16], al
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add ch, byte [edx + esi + 0x40]
add byte [ecx], al
add byte [0x72616843], al
jae 0x41e181
add byte [eax + 0x34], al
xor al, byte [eax]
add al, byte [eax]
add dword [ecx], eax
add al, byte [eax]
add al, byte [eax]
push 0x65dc2000
add byte [eax], cl
xor al, 0x32
inc eax
add byte [edx], al
add byte [ecx], al
add dword [edx], eax
add byte [edx], al
add byte [eax], ch
and ah, bl
add byte gs:[eax], cl
inc edi
je 0x41e1da
jns 0x41e20e
jae 0x41e1a0
add byte [edx + esi], dh
inc eax
add byte [eax + eax], dl
add eax, 0x41ea4008
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
push ss
dec esp
adc byte [eax], al
add dword [eax], eax
add eax, 0x72616843
jae 0x41e1c3
add byte [eax], al
pushfd
adc byte [eax], al
adc byte [eax], al
or dword [ebx + 0x68], eax
popal
jb 0x41e218
outsb dx, byte [esi]
js 0x41e1d6
add byte [eax], al
pushfd
adc byte [eax], al
or al, 0
or dword [ebx + 0x68], eax
popal
jb 0x41e225
outsd dx, dword [esi]
jne 0x41e253
je 0x41e1e9
add byte [eax + 0x34], al
xor al, byte [eax]
or byte [eax], al
add dword [ecx], eax
add al, byte [eax]
add al, byte [eax]
push 0x65dc2000
add byte [eax], cl
xor al, 0x32
inc eax
add byte [eax], cl
add byte [ecx], al
add dword [edx], eax
add byte [edx], al
add byte [eax], ch
and ah, bl
add byte gs:[eax], cl
inc edi
je 0x41e242
jns 0x41e276
jae 0x41e208
add byte [edx + esi], dh
inc eax
add byte [eax], dl
add byte [0x41ea4008], al
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
inc eax
ljmp 0x5304
add al, byte [eax]
add ch, byte [edx + esi + 0x40]
add byte [ecx], al
add byte [0x72616843], al
popal
jb 0x41e29b
jae 0x41e22b
add al, byte [eax]
add byte [eax + edx + 0x20040], bl
add byte [eax], al
pushfd
adc byte [eax], al
add al, byte [eax]
or dword [ebx + 0x68], eax
popal
jb 0x41e280
outsb dx, byte [esi]
js 0x41e23e
add byte [eax], al
pushfd
adc byte [eax], al
or al, 0
or dword [ebx + 0x68], eax
popal
jb 0x41e28d
outsd dx, dword [esi]
jne 0x41e2bb
je 0x41e251
add byte [eax + 0x34], al
xor al, byte [eax]
or byte [eax], al
add dword [ecx], eax
add al, byte [eax]
add al, byte [eax]
jg 0x41e25f
xor al, 0x32
inc eax
add byte [eax], cl
add byte [ecx], al
add dword [edx], eax
add byte [edx], al
add byte [edi], bh
and ah, bl
add byte gs:[eax], cl
inc edi
je 0x41e2aa
jns 0x41e2de
jae 0x41e270
add byte [eax + edx + 0x180040], bl
push es
inc eax
add byte [eax], bl
add byte [esi], al
or byte [eax - 0x16], al
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
inc eax
ljmp 0x5304
add al, byte [eax]
push ss
dec esp
adc byte [eax], al
add dword [eax], eax
add eax, 0x72616843
jae 0x41e293
popal
jb 0x41e303
add al, byte [eax]
add byte [eax + edx + 0x140040], bl
add byte [eax], al
pushfd
adc byte [eax], al
adc al, 0
or dword [ebx + 0x68], eax
popal
jb 0x41e2e8
push 0x6e497261
outsb dx, byte [esi]
js 0x41e2a6
add byte [eax], al
pushfd
adc byte [eax], al
adc byte [eax], al
or dword [ebx + 0x68], eax
popal
jb 0x41e2f5
outsd dx, dword [esi]
jne 0x41e323
je 0x41e2b9
add byte [edx], al
xor al, 0x32
inc eax
add byte [eax + eax], cl
add eax, 0x65747942
jae 0x41e2c8
add byte [eax], al
pushfd
adc byte [eax], al
or byte [eax], al
or dword [edx + 0x79], eax
je 0x41e338
dec ecx
outsb dx, byte [esi]
js 0x41e2db
add byte [edx], al
add byte [edi], bh
and ah, bl
add byte gs:[eax], cl
inc edi
je 0x41e329
jns 0x41e35d
je 0x41e34f
jae 0x41e2ef
jae 0x41e2ef
add byte [eax + edx + 0x140040], bl
inc eax
add byte [eax + eax], dl
push es
or byte [eax - 0x16], al
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
inc eax
ljmp 0x5304
add al, byte [eax]
add ch, byte [edx + esi + 0x40]
add byte [ecx], al
add byte [0x72616843], al
insb byte es:[edi], dx
xor al, byte [eax]
add dword [eax], eax
add eax, 0x72616843
jae 0x41e312
add byte [eax], al
pushfd
adc byte [eax], al
add al, byte [eax]
or dword [ebx + 0x68], eax
popal
jb 0x41e367
outsb dx, byte [esi]
js 0x41e325
add byte [eax], al
pushfd
adc byte [eax], al
adc byte [eax], al
or dword [ebx + 0x68], eax
popal
jb 0x41e374
outsd dx, dword [esi]
jne 0x41e3a2
je 0x41e338
add byte [edx], al
xor al, 0x32
inc eax
add byte [eax + eax], cl
add eax, 0x65747942
jae 0x41e347
add byte [eax], al
pushfd
adc byte [eax], al
or byte [eax], al
or dword [edx + 0x79], eax
je 0x41e3b7
jns 0x41e3c5
dec ecx
dec ecx
outsb dx, byte [esi]
js 0x41e35a
add byte [edx], al
add byte [esi], bh
add ah, dl
xchg ebx, eax
aam 0x93
inc edx
add byte [eax], cl
inc edi
je 0x41e3a8
jns 0x41e3dc
je 0x41e3ce
jae 0x41e36e
jae 0x41e36e
add byte [edx + esi], dh
inc eax
add byte [eax], cl
add byte [ebx], al
or byte [eax - 0x16], al
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add bh, byte [eax + 0x1004012]
add byte [ecx], al
push ebx
add al, byte [eax]
inc eax
xor al, 0x32
inc eax
add byte [edx], al
add byte [ecx], al
add dword [edx], eax
add byte [edx], al
add byte [ebx], bh
and ah, bl
add byte gs:[eax], cl
inc eax
ljmp 0x5304
inc edi
je 0x41e3e6
je 0x41e3e6
jns 0x41e41a
jae 0x41e3ac
add eax, dword [eax]
pushfd
adc byte [eax], al
adc al, 0
add byte [eax + edx + 0x140040], bl
inc eax
add byte [eax + eax], dl
push es
or byte [eax - 0x16], al
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add bh, byte [eax + 0x1004012]
add byte [ecx], al
push ebx
add al, byte [eax]
add byte [eax + edx + 0x20040], bl
or dword [ebx + 0x68], eax
popal
jb 0x41e420
add byte [edx], al
add byte [ecx], cl
inc ebx
push 0x6e497261
outsb dx, byte [esi]
js 0x41e3de
add byte [eax], al
pushfd
adc byte [eax], al
adc byte [eax], al
or dword [ebx + 0x68], eax
popal
jb 0x41e42d
push 0x6f437261
outsd dx, dword [esi]
jne 0x41e45b
je 0x41e3f1
add byte [edx], al
xor al, 0x32
inc eax
add byte [eax + eax], cl
add eax, 0x65747942
jae 0x41e400
add byte [eax], al
pushfd
adc byte [eax], al
or byte [eax], al
or dword [edx + 0x79], eax
je 0x41e470
dec ecx
outsb dx, byte [esi]
js 0x41e413
add byte [edx], al
add byte [eax + eax + 0x42944c], dl
or byte [edi + 0x65], al
je 0x41e461
jns 0x41e495
je 0x41e487
jae 0x41e427
jae 0x41e427
add byte [eax + edx + 0x180040], bl
pop es
inc eax
add byte [eax], bl
add byte [edi], al
or byte [eax - 0x16], al
inc ecx
add byte [eax], al
add byte [ebx + edx*2], al
inc eax
ljmp 0x5304
insb byte es:[edi], dx
add al, byte [eax]
add bh, byte [eax + 0x1004012]
add byte [ecx], al
push ebx
add al, byte [eax]
inc eax
add byte [eax + eax], dl
push 0x6f437261
adc byte [eax], al
add eax, 0x65747942
push ebx
je 0x41e50a
imul ebp, dword [esi + 0x67], 0x65736142