Function at 0x409b60
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
push ebx
push esi
mov esi, dword [ebp + 0x10]
mov ebx, ecx
mov ecx, dword [ebp + 8]
lea eax, [esi + esi]
mov dword [ebp - 0x110], eax
add eax, ecx
mov dword [ebp - 0x104], eax
mov dword [ebp - 4], eax
add eax, 0xfffffffe
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x100], 0
mov dword [ebp - 0x108], eax
test ebx, ebx
je 0x48bbbe
mov edx, dword [ebp + 0x14]
test edx, 0xe20f5a6f
jne 0x48bbee
test ebx, ebx
je 0x48bc00
test ecx, ecx
je 0x48bc00
cmp dword [ebp + 0x18], 0
mov eax, dword [ebp + 0x1c]
je 0x48bbf8
test eax, eax
js 0x48bc0a
test edi, edi
js 0x48bc14
test esi, esi
js 0x48c49a
cmp esi, edi
jg 0x48c49a
mov eax, dword [ebx]
cmp eax, 0x50435245
jne 0x48bc1e
test byte [ebx + 0xc], 2
je 0x48bc32
mov ecx, dword [ebx + 8]
test ecx, 0x800
je 0x40a24d
mov eax, 1
mov dword [ebp - 0xc], eax
mov dword [ebp - 0xa8], eax
test edx, 0x8000000
jne 0x40a254
test edx, 0x8000
jne 0x40a25e
xor eax, eax
cmp dword [ebp - 0xc], 0
mov dword [ebp - 0x6c], eax
je 0x409c93
test edx, 0x2000
je 0x48bc3c
test dword [ebx + 0xc], 0x2000
movzx eax, word [ebx + 0x22]
movzx edx, word [ebx + 0x24]
lea eax, [ebx + eax*2]
mov dword [ebp - 0xc8], eax
movzx eax, word [ebx + 0x26]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xf4], 0x989680
mov dword [ebp - 0xf0], 0x989680
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x14], eax
jne 0x48bcb5
test dword [ebx + 0xc], 0x4000
jne 0x48bcd3
test eax, eax
jne 0x409cfb
mov eax, 0x4ae7e0
mov dword [ebp - 0x14], eax
mov eax, ecx
or eax, dword [ebp + 0x14]
test al, 0x10
jne 0x48bcf4
mov dword [ebp - 0x38], 0
test dword [ebx + 0xc], 0x100
jne 0x48bd00
mov dword [ebp - 0x1c], 0
test ecx, 0x40000
jne 0x48bd0c
mov dword [ebp - 0x30], 0
movzx eax, word [ebx + 0x26]
imul edx, eax
movzx eax, word [ebx + 0x22]
add edx, eax
mov dword [ebp - 0x60], esi
lea eax, [ebx + edx*2]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x80], eax
lea eax, [eax + edi*2]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 8], eax
test cl, 0x20
jne 0x40a268
xor eax, eax
mov dword [ebp - 0x9c], eax
test ecx, 0x20000000
jne 0x40a272
xor eax, eax
mov dword [ebp - 0xa0], eax
test ecx, 0x2000000
jne 0x40a27c
xor eax, eax
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xcc], 0
test dl, dl
js 0x40a286
xor eax, eax
mov dword [ebp - 0xb0], eax
test edx, 0x100
jne 0x40a290
xor eax, eax
mov dword [ebp - 0xac], eax
test edx, 0x400
jne 0x40a29a
xor eax, eax
mov dword [ebp - 0x98], eax
test edx, 0x10000000
jne 0x40a2a4
xor eax, eax
mov esi, dword [ebx + 0xc]
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x50], 0
test esi, 0x1000
jne 0x40a2ae
xor eax, eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xbc], eax
lea edi, [eax + 0x100]
add eax, 0x340
mov dword [ebp - 0xb4], eax
mov eax, edx
mov dword [ebp - 0xb8], edi
and eax, 0x1800000
jne 0x48bd18
test ecx, 0x1800000
jne 0x48bd3d
mov dword [ebp - 0x8c], 1
test edx, 0x700000
jne 0x40a2b8
and ecx, 0x700000
jne 0x48bd50
mov dword [ebp - 0xe0], 2
cmp dword [ebp - 0x6c], 0
jne 0x48bdfc
mov eax, 0x55555556
imul dword [ebp + 0x1c]
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edi, [eax + eax*2]
mov eax, 0x55555556
lea ecx, [edi + edi]
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x14], eax
movzx eax, word [ebx + 0x20]
test ax, ax
jne 0x48be12
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0xec], esi
lea ecx, [edi + edi]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x64], 0
test esi, esi
je 0x409f30
movzx eax, word [ebx + 0x1e]
lea ecx, [esi + edi*4]
shl eax, 2
mov edx, ecx
sub edx, eax
lea eax, [esi + 8]
cmp edx, eax
jb 0x40a2bf
sub ecx, 4
cmp ecx, edx
jae 0x40a110
mov dword [esi + 4], 0xffffffff
mov eax, dword [ebp - 0xec]
mov dword [eax], 0xffffffff
cmp dword [ebp - 0x38], 0
jne 0x409f41
mov eax, dword [ebx + 0xc]
test al, 0x10
jne 0x40a1ef
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebx + 0xc]
test al, 0x40
jne 0x40a210
cmp dword [ebp - 0x30], 0
mov edi, dword [ebp - 8]
mov ecx, edi
mov dword [ebp + 0x10], ecx
jne 0x48bf32
mov esi, dword [ebx + 8]
or esi, dword [ebp + 0x14]
and esi, 0x4000000
jne 0x409f87
cmp dword [ebp - 0x24], esi
jne 0x40a1bf
cmp dword [ebp - 0x1c], esi
jne 0x48c09f
mov dword [ebp - 8], ecx
test esi, esi
jne 0x409f9a
cmp dword [ebp - 0x10c], esi
jne 0x40a128
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x84]
push 0
push 0
lea ecx, [ebp - 0xf8]
push ecx
push 2
push eax
mov ecx, eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0xd0], 0
call int.0040a300
add esp, 0x14
cmp dword [ebp - 0x90], 0
mov esi, eax
jne 0x48c29c
test esi, esi
jle 0x40a063
cmp esi, 1
jne 0x48c3aa
cmp dword [ebp - 0x20], 0
mov esi, dword [ebp - 0x14]
jne 0x48c409
test dword [ebp - 0x64], 0x10000
mov ecx, dword [ebp - 0x68]
jne 0x48c44f
mov eax, ecx
cdq
sub eax, edx
mov esi, eax
sar esi, 1
movzx edi, word [ebx + 0x1e]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
cmp eax, edi
mov eax, dword [ebp + 0x18]
jle 0x48c45e
cmp dword [ebp + 0x1c], 2
jl 0x40a2eb
mov ecx, dword [ebp - 0x78]
sub ecx, dword [ebp - 0x80]
sar ecx, 1
mov dword [eax], ecx
mov ecx, dword [ebp - 0x74]
sub ecx, dword [ebp - 0x80]
sar ecx, 1
mov dword [eax + 4], ecx
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
jne 0x48c2ba
mov edx, dword [ebp - 4]
cmp dword [ebp - 0xc], 0
mov dword [ebp - 0xcc], 0
lea edi, [edx + 2]
je 0x40a2d5
mov ecx, dword [ebp + 0x10]
cmp edi, ecx
jae 0x40a0a3
mov ax, word [edi]
mov esi, 0xfc00
and ax, si
mov esi, 0xdc00
cmp ax, si
je 0x40a2cd
mov eax, dword [ebp - 0xe0]
xor esi, esi
cmp dword [ebp - 0x30], esi
jne 0x48c2f9
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 4], edi
cmp edi, ecx
ja 0x40a195
cmp dword [ebp - 0x38], esi
jne 0x40a195
cmp edi, dword [ebp - 0x104]
jbe 0x40a0dd
cmp word [edi - 2], 0xd
je 0x40a0e5
mov dword [ebp - 0x48], esi
jmp 0x409f55
cmp edi, ecx
jae 0x40a0dd
cmp word [edi], 0xa
jne 0x40a0dd
test dword [ebx + 0xc], 0x800
jne 0x40a0dd
add byte [ebp - 0x1b], dh
cmp eax, 2
jne 0x48c389
lea eax, [edi + 2]
mov dword [ebp - 4], eax
mov dword [ebp - 0x48], esi
jmp 0x409f55
mov dword [ecx], 0xffffffff
sub ecx, 4
cmp ecx, edx
jae 0x40a110
mov esi, dword [ebp - 0xec]
jmp 0x409f1d
cmp dword [ebp - 0x6c], 0
jne 0x409f9a
mov edx, dword [ebp - 4]
mov eax, ecx
sub eax, edx
and eax, 0xfffffffe
cmp eax, 0x7d0
jge 0x409f9a
cmp dword [ebp - 0x24], 0
je 0x40a2c6
mov eax, 1
lea edx, [edx + eax*2]
cmp edx, dword [ebp - 0x108]
jbe 0x409f9a
mov esi, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x18]
cmp si, ax
jne 0x48c26b
cmp edx, ecx
jae 0x40a193
jmp 0x40a180
mov ax, word [edx]
add edx, 2
cmp ax, si
je 0x40a237
cmp edx, ecx
jb 0x40a180
xor esi, esi
cmp dword [ebp - 0x20], 0
jne 0x48c3be
test esi, esi
jne 0x40a2dd
mov esi, dword [ebp - 0x100]
test esi, esi
jne 0x48c3d5
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 4]
cmp dx, word [ebp - 0x10]
jne 0x48c071
cmp eax, edi
jae 0x409f87
cmp word [eax], dx
je 0x409f87
add eax, 2
mov dword [ebp - 4], eax
cmp eax, edi
jb 0x40a1d7
jmp 0x409f87
movzx edi, word [ebx + 0x18]
movzx esi, di
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x34], esi
test al, 0x20
je 0x409f41
jmp 0x48be61
movzx edi, word [ebx + 0x1a]
movzx esi, di
mov dword [ebp - 0x10c], 1
mov dword [ebp - 0x18], edi
mov dword [ebp - 0xfc], esi
test al, al
jns 0x409f55
jmp 0x48bece
sub edx, 2
cmp edx, ecx
jae 0x40a193
mov dword [ebp - 0x108], edx
jmp 0x409f9a
xor eax, eax
jmp 0x409c5b
mov eax, 2
jmp 0x409c7e
mov eax, 1
jmp 0x409c7e
mov eax, 1
jmp 0x409d69
mov eax, 1
jmp 0x409d7d
mov eax, 1
jmp 0x409d91
mov eax, 1
jmp 0x409dae
mov eax, 1
jmp 0x409dc2
mov eax, 1
jmp 0x409dd6
mov eax, 1
jmp 0x409dea
mov eax, 1
jmp 0x409e20
mov ecx, edx
jmp 0x409e75
mov edx, eax
jmp 0x409f12
xor eax, eax
jmp 0x40a156
add edi, 2
jmp 0x40a0a3
mov ecx, dword [ebp + 0x10]
jmp 0x40a0a3
cmp esi, 0xfffffff4
jne 0x40a05a
jmp 0x40a1a7
xor esi, esi
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ah, 0x48
add byte [esp + esi*4 + 0x48], bh
add byte [ebx - 0x51ffb74c], dl
mov ah, 0x48
add ch, al
mov ah, 0x48
add byte [ebx], cl
mov dl, 0x48
add dh, bl
mov ah, 0x48
add dh, bl
mov ah, 0x48
add byte [edi], dl
wait
dec eax
add byte [edi], dl
wait
dec eax
add byte [edx - 0x4e], bl
dec eax
add byte [ecx + 0x450048b2], bh
mov bl, 0x48
add cl, dl
mov bl, 0x48
add byte [ebx], dl
mov ah, 0x48
add byte [ecx + ecx*8], al
jne 0x42409c1f
inc ecx
cmp edi, 0x2c84fc19
jne 0x42409c1f
sbb esp, edi
test byte [edi + ecx], ch
test dword [edx], edx
loopne 0x48bc03
inc ecx
cmp esi, edi
jne 0x42409c1f
inc ecx
push ecx
push ecx
push ecx
push ecx
push ecx
xor edx, edx
call 0x140a33b
dec dword [edi]
adc al, 0xe9
out 0xf7, eax
add bh, bh
unpcklps xmm5, xmm1
outsb dx, byte [esi]
in al, 0xf7
invalid
movntps xmmword [edi], xmm1
jle 0x42409c4b
mov eax, 0x5b8288fe
clc
push edx
dec byte [eax + 0x52f85b82]
in al, 0xf7
invalid
invalid
invalid
cmp dword [ebx + 0x10], 0x89989680
jae 0x42409d1d
xchg esi, eax
cwde
mov dword [edi], ecx
and dword [eax], 0xffffffe0
test dword [ecx - 0x75], 0xb5891073
or al, 0xc7
add cl, byte [ebp - 0x16ef8ab7]
pavgb mm6, mm7
inc ecx
cmp dword [ebx + 0x14], 0x89989680
mov edi, dword [ebp + 0xc]
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x72fd38f4], esi
dec ecx
jne 0x48bd19
jmp 0x42409d1d
test dword [ecx - 0x7f], 0x9680147b
cwde
mov dword [ebx - 0x7cf0f383], ecx
or al, 0xe0
test dword [ecx - 0x75], 0xb5891473
adc bh, al
add cl, byte [ebp - 0x16ef8ab7]
sti
fcompi st(7)
inc ecx
mov dword [ebp - 0x38], 0xf8607e01
jae 0x42409d2a
or dword [eax], 0xfffffff7
inc ecx
mov esi, dword [ebx + 0x14]
mov dword [ebp - 0x72fd38f0], esi
dec ecx
jne 0x48bd3a
jmp 0x42409d2a
pushal
clc
jmp 0x42409d4a
inc ecx
mov dword [ebp - 0x1c], 0xf8607e01
in al, 1
jle 0x48bda1
clc
jmp 0x42409d5e
sar byte [ebp + 0x6a], 1
mov eax, dword [ecx - 0x17]
push ds
loopne 0x48bd49
inc ecx
cmp eax, 0x85b10bc5
rol byte [esp + edi + 0x3d41f7e1], cl
lds ecx, [ebx]
mov bl, 1
jne 0x1050be1e
je 0x48bcf0
je 0x48bd34
add cl, byte [ebp]
jmp 0x42409ea4
and byte [eax], al
jne 0x48be1e
mov ecx, 0x8b89660a
jmp 0x48bdb8
je 0x48bd3f
and bh, al
add cl, byte [ebp]
cmp ecx, 0x6602c783
jle 0x48bdf4
mov eax, ecx
sar eax, 8
and eax, 0x6602c783
test dword [ecx - 0x7deac37b], ecx
clc
movzx eax, cl
mov dword [ebp - 0x77deadc], 0x6602c702
test dword [ecx + 0x2c73e85], ecx
invalid
mov dword [ebp - 0x77deadc], 0x6602c701
test dword [ecx - 0x7deac373], ecx
clc
add ah, byte [esi - 0x7b]
mov dword [ebp - 0x77deac4], ecx
jmp 0x42409ec6
cmp ecx, 0x85500000
rol byte [esi + ebx*4 - 0x47be0820], cl
jmp 0xe9a64823
mov eax, 0x5d89ffe9
jmp 0x4240a097
add eax, edx
cmp ecx, eax
jl 0x42409f03
sahf
loopne 0x48be5b
inc ecx
lea edi, [ecx + 1]
lea edi, [edi + edi*2]
lea eax, [edi*4 + 0x57008c]
push eax
call dword [0x4bbddc]
mov esi, eax
mov eax, dword [edi + 0x34]
mov dword [ebp - 0x380000ec], esi
inc ebp
int3
rol ecx, 0xe8
add byte [eax + 3], 0x4a
add byte [ebx], al
shr ebx, 7
rol byte [ebp - 0x7f], 0xe1
add al, 0xc5
or esi, dword [ecx - 0x7cb6ffb6]
leave
add byte [ecx + 3], 0xc1
mov dh, 4
add dword [ecx - 0x37c4f3b9], ecx
je 0x496cd1
stc
inc dword [ebx + 0xfc60366]
mov bh, 0xc0
mov dword [ebp - 0x10], eax
jmp 0xa1409f82
rol ecx, 0xe8
add byte [eax + 3], 0x4a
add byte [ebx], al
shr ebx, 7
rol byte [ebp - 0x7f], 0xe1
add al, 0xc5
or esi, dword [ecx - 0x7cb6ffb6]
leave
add byte [ecx + 3], 0xc1
mov dh, 4
add dword [ecx - 0x37c4f3b9], ecx
je 0x496d35
stc
inc dword [ebx + 0xfc60366]
mov bh, 0xc0
mov dword [ebp - 0x18], eax
jmp 0x42409f90
test edx, edx
je 0x48c06b
push 0
lea ecx, [ebp - 0x72fd38dc]
push ecx
push eax
bswap esi
call 0x5409039
add word [edi], 5
mov esi, dword [ebp + 0x42]
dec esp
xchg ebp, eax
and byte [0xbd8bf882], dl
and al, 0xc7
add cl, byte [ebp + 0x4d892aeb]
test byte [ebp - 0x37d4c0fc], cl
mov dword [ebp - 0x7c], ecx
lea eax, [edi + edi]
sub ecx, eax
cmp esi, ecx
ja 0x48c095
and ecx, dword [ebx - 0x7ac448fa]
cmp al, 0x15
cmp al, 0x75
adc al, byte [edi + edi*8]
add dword [edi + edx - 0x7b], esi
mov eax, dword [esi - 1]
mov eax, edx
test dword [esi], edi
mov dword [edx], 0x4d0a748d
dec ebp
in al, dx
test byte [ebx - 0xfc4fd3a], al
jb 0x48c041
dec ecx
rcl dword [eax], 0x8b
dec byte [ecx - 0x9160783]
fdivrp st(7)
add al, 0x3b
invalid
pop ecx
cld
ret
add cl, byte [ebp + 0x1520858b]
cmp al, 0xeb
jecxz 0x48c2e2
ror dword [edi], 1
and dword [eax], 0xffffffdf
test dword [eax], 0xffe3b66
mov bh, 0x32
movzx esi, word [edx]
add edx, 2
cmp esi, edi
je 0x140a272
test byte [ebx + 0x6600f7df], dh
cmp eax, eax
cmp ax, ax
cmp esi, eax
je 0x4240a272
cmp edx, ecx
jae 0x540a1ce
mov eax, dword [ebp - 0x18]
jmp 0x48c2b1
inc ebp
nop
mov dword [ebp - 0x28], eax
inc dword [ebp - 4]
mov dword [ebp + 0x5d89ff00], eax
jmp 0x540a02d
add byte [esi - 0x77], bh
clc
add al, 0xf
xchg dword [0xff04f7dd], ebp
and al, 0x85
cmpsb byte [esi], byte es:[edi]
les ecx, [eax]
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 0x5d89ff30]
mov dword [ebp - 0x72fd38cc], eax
mov edx, edi
jmp 0x4240a310
mov bh, 0x3b
test dword [edx + 0x2475f882], edi
cmp edx, 1
je 0x48c3f1
clc
mov eax, dword [ecx - 1]
sbb ecx, dword [ebp + 0x10]
mov eax, edx
test dword [esi], edi
mov dword [edx], 0x25840f8d
fdivrp st(7)
lea ecx, [ebx - 0x7deadf7b]
clc
jmp 0x8e40a0f5
clc
jmp 0x40a0f5
add al, 0xe9
popal
invalid
dec ecx
rcl dword [eax], 0xe9
xlatb
invalid
mov ecx, dword [ebp + 0x10]
add word [ecx + ebp*8], 0xffca
add dword [ecx + ebp*8], 0xffffffca
invalid
pop ebp
push eax
mov eax, dword [ebp - 0x380000ec]
add eax, 8
push eax
inc dword [ebp + 0x18]
add eax, 8
push eax
call 0x541eebb
add word [edi], 0x39
jne 0x48c405
jle 0x48c476
or dword [ebp - 0x64], 0x7e848bc8
push dword [ebp - 0x380000ec]
xor byte [ebx + 0xc8d947d], cl
add word [ecx + ebp*8], 0xffbd
fcomi st(7)
add edi, dword [ebx]
into
jl 0x440a057
xor esi, esi
jmp 0x1040a060
invalid
fnstsw word [edi]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
lahf
lodsd eax, dword [esi]
push 0xdb72a437
aas
retf 0xd01c
inc edi
out dx, eax
sahf
loope 0x496d7a
in al, dx
xor al, 8
sbb dword [edi - 0x15c01ee6], esi
and eax, 0x564bcdb6
invalid
add byte [eax + 0x582655bc], bl
aas
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov byte [0x2eff691f], al
xchg edi, eax
aas
mov ebp, 0x87e93463
in eax, dx
out dx, al
aas
mov al, byte [0xb2070e10]
cmc
aas
movsb byte es:[edi], byte [esi]
nop
xlatb
hlt