Function at 0x408060
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov ebx, ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x110], ebx
lea eax, [edi + edi]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x11c], eax
add eax, ecx
mov dword [ebp - 0x114], eax
mov dword [ebp + 0x10], eax
add eax, 0xfffffffe
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x28], eax
test ebx, ebx
je 0x445b0d
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x14]
test esi, 0xe20f5a6f
jne 0x445b48
test ebx, ebx
je 0x445b5a
test ecx, ecx
je 0x445b5a
cmp dword [ebp + 0x18], 0
mov eax, dword [ebp + 0x1c]
je 0x445b52
test eax, eax
js 0x445b64
test edx, edx
js 0x445b6e
test edi, edi
js 0x446527
cmp edi, edx
jg 0x446527
mov eax, dword [ebx]
cmp eax, 0x50435245
jne 0x445b78
test byte [ebx + 0xc], 2
je 0x445b8c
mov ecx, dword [ebx + 8]
test ecx, 0x800
je 0x445b96
mov eax, 1
mov dword [ebp - 8], eax
mov dword [ebp - 0xb8], eax
test esi, 0x8000000
jne 0x445b9d
test esi, 0x8000
jne 0x445ba7
xor esi, esi
mov dword [ebp - 0x7c], esi
test eax, eax
je 0x40819c
test dword [ebp + 0x14], 0x2000
je 0x445bb1
movzx eax, word [ebx + 0x22]
mov esi, 0x989680
movzx edx, word [ebx + 0x24]
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0x104], esi
lea eax, [ebx + eax*2]
mov dword [ebp - 0x100], 0x1f40
mov dword [ebp - 0xd8], eax
movzx eax, word [ebx + 0x26]
mov dword [ebp - 0xe8], eax
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x40821e
mov ecx, dword [eax]
test cl, 1
je 0x4081f7
mov eax, dword [eax + 4]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x20]
test cl, 2
jne 0x445c28
test cl, 0x10
jne 0x445c36
test cl, 4
jne 0x445c47
test cl, 8
mov ecx, dword [ebx + 8]
jne 0x445c55
test dword [ebx + 0xc], 0x2000
jne 0x445c60
test dword [ebx + 0xc], 0x4000
jne 0x445c76
mov esi, dword [ebp - 0x24]
test esi, esi
jne 0x408244
mov esi, 0x4b0bb0
mov eax, ecx
or eax, dword [ebp + 0x14]
test al, 0x10
jne 0x445c90
mov dword [ebp - 0x24], 0
test dword [ebx + 0xc], 0x100
jne 0x445c9c
mov dword [ebp - 0x30], 0
test ecx, 0x40000
jne 0x445ca8
mov dword [ebp - 0x40], 0
movzx eax, word [ebx + 0x26]
imul edx, eax
movzx eax, word [ebx + 0x22]
mov dword [ebp - 0x70], edi
add edx, eax
lea eax, [ebx + edx*2]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x90], edx
lea eax, [edx + eax*2]
mov dword [ebp - 4], eax
mov dword [ebp - 0x8c], eax
test cl, 0x20
jne 0x445cb4
xor eax, eax
mov dword [ebp - 0xac], eax
test ecx, 0x20000000
jne 0x445cbe
xor eax, eax
mov dword [ebp - 0xb0], eax
test ecx, 0x2000000
jne 0x445cc8
xor eax, eax
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xdc], 0
test dl, dl
js 0x445cd2
xor eax, eax
mov dword [ebp - 0xc0], eax
test edx, 0x100
jne 0x445cdc
xor eax, eax
mov dword [ebp - 0xbc], eax
test edx, 0x400
jne 0x445ce6
xor eax, eax
mov dword [ebp - 0xa8], eax
test edx, 0x10000000
jne 0x445cf0
xor eax, eax
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x60], 0
test edx, 0x1000
jne 0x445cfa
xor eax, eax
mov dword [ebp - 0x98], eax
lea eax, [esi + 0x100]
mov dword [ebp - 0xc8], eax
lea eax, [esi + 0x340]
mov dword [ebp - 0xcc], esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0xc4], eax
mov eax, esi
and eax, 0x1800000
jne 0x445d04
test ecx, 0x1800000
jne 0x445d29
mov dword [ebp - 0x9c], 1
test esi, 0x700000
jne 0x445d3c
and ecx, 0x700000
jne 0x445d43
mov dword [ebp - 0xf0], 2
cmp dword [ebp - 0x7c], 0
jne 0x445dd8
mov eax, 0x55555556
imul dword [ebp + 0x1c]
mov eax, edx
shr eax, 0x1f
add eax, edx
lea esi, [eax + eax*2]
mov eax, 0x55555556
lea ecx, [esi + esi]
mov dword [ebp - 0xc], esi
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x2c], eax
movzx eax, word [ebx + 0x20]
test ax, ax
jne 0x445dee
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0xfc], esi
mov eax, dword [ebp - 0xc]
mov edi, esi
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x74], 0
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xf4], eax
test edi, edi
je 0x40849a
mov eax, dword [ebp - 0xc]
lea ecx, [edi + eax*4]
movzx eax, word [ebx + 0x1e]
shl eax, 2
mov edx, ecx
sub edx, eax
add edi, 8
cmp edx, edi
jb 0x445e39
sub ecx, 4
cmp ecx, edx
jae 0x4086e0
mov eax, dword [ebp + 0x1c]
test eax, eax
jle 0x40848e
mov dword [esi], 0xffffffff
mov esi, dword [ebp - 0xfc]
cmp eax, 1
jle 0x40849a
mov dword [esi + 4], 0xffffffff
cmp dword [ebp - 0x24], 0
jne 0x445ea2
mov eax, dword [ebx + 0xc]
test al, 0x10
jne 0x4086f8
cmp dword [ebp - 0x30], 0
jne 0x445ea2
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x445ea2
test byte [eax + 4], 1
mov esi, dword [ebp - 8]
jne 0x4086d2
xor eax, eax
xor edi, edi
mov eax, dword [ebx + 0xc]
test al, 0x40
jne 0x40871f
xor edi, edi
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 4]
mov esi, dword [ebp + 0x10]
cmp dword [ebp - 0x40], 0
mov edi, eax
jne 0x445f07
mov esi, dword [ebx + 8]
or esi, dword [ebp + 0x14]
and esi, 0x4000000
jne 0x44624f
cmp dword [ebp - 0x3c], esi
jne 0x40869b
cmp dword [ebp - 0x30], esi
jne 0x446087
mov edx, dword [ebp + 0x10]
cmp dword [ebp - 0x34], esi
jne 0x408658
test esi, esi
jne 0x446285
cmp dword [ebp - 0x7c], esi
jne 0x446285
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x40855b
test byte [ecx + 4], 2
je 0x40855b
sub eax, edx
sar eax, 1
cmp eax, dword [ecx + 0x28]
jb 0x4087b5
cmp dword [ebp - 0x10c], 0
mov edi, dword [ebp - 4]
jne 0x408749
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x108]
push 0
push 0
push eax
push 2
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x80], edx
push edx
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0xe0], 0
call fcn.00408810
mov edx, dword [ebp + 0x10]
add esp, 0x14
cmp dword [ebp - 0xa0], 0
mov esi, eax
jne 0x44628d
test esi, esi
jle 0x4462a8
cmp esi, 1
jne 0x4463ff
cmp dword [ebp - 0x48], 0
mov edi, dword [ebp - 0x2c]
jne 0x446474
test dword [ebp - 0x74], 0x10000
mov esi, dword [ebp - 0x78]
jne 0x4464b9
mov eax, esi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
movzx edi, word [ebx + 0x1e]
mov eax, esi
mov ebx, dword [ebp + 0x18]
cdq
sub eax, edx
sar eax, 1
cmp eax, edi
jle 0x4464c8
cmp dword [ebp + 0x1c], 2
jl 0x446513
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x90]
sar eax, 1
mov dword [ebx], eax
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x90]
sar eax, 1
mov dword [ebx + 4], eax
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x40864f
test byte [edx], 0x20
jne 0x44651a
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edx, edi
jae 0x408530
movzx edx, word [edx]
cmp edx, 0xff
ja 0x446242
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x34]
test byte [edx + ecx], al
mov edx, dword [ebp + 0x10]
jne 0x4086ca
add edx, 2
mov dword [ebp + 0x10], edx
cmp edx, edi
jb 0x408660
mov eax, dword [ebp - 4]
jmp 0x408530
mov edx, dword [ebp + 0x10]
cmp edx, edi
jae 0x408530
mov edx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
cmp bx, dx
mov ebx, dword [ebp - 0x110]
mov edx, dword [ebp + 0x10]
jne 0x44605c
mov eax, dword [ebp - 0x14]
cmp word [edx], ax
jne 0x4087f6
mov eax, dword [ebp - 4]
jmp 0x408530
add eax, 8
mov dword [ebp - 0x34], eax
jmp 0x4084d1
mov dword [ecx], 0xffffffff
sub ecx, 4
cmp ecx, edx
jae 0x4086e0
mov esi, dword [ebp - 0xfc]
jmp 0x40847b
movzx esi, word [ebx + 0x18]
movzx edi, si
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x10], esi
movzx ecx, si
mov dword [ebp - 0x14], edi
test al, 0x20
jne 0x445e40
mov esi, dword [ebp - 8]
jmp 0x4084d5
movzx ecx, word [ebx + 0x1a]
mov dword [ebp - 0x18], ecx
mov edi, dword [ebp - 0x18]
movzx edx, di
mov dword [ebp - 0x10c], 1
movzx ecx, cx
mov dword [ebp - 0x1c], edx
test al, al
jns 0x4084e2
jmp 0x445eaa
mov eax, edi
sub eax, edx
and eax, 0xfffffffe
cmp eax, 0x7d0
jge 0x40856b
cmp dword [ebp - 0x3c], 0
je 0x446257
mov eax, 2
lea ecx, [eax + edx]
cmp ecx, dword [ebp - 0x28]
jbe 0x40856b
cmp ecx, edi
jae 0x4087a4
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
cmp bx, si
mov ebx, dword [ebp - 0x110]
jne 0x44625e
mov edx, dword [ebp - 0x1c]
movzx eax, word [ecx]
mov dword [ebp - 0x28], ecx
add ecx, 2
cmp ax, dx
je 0x4087a8
cmp ecx, edi
jb 0x408792
xor esi, esi
jmp 0x4087ba
cmp dword [ebp - 0x28], edi
jae 0x4087a4
mov edx, dword [ebp + 0x10]
jmp 0x40856b
xor esi, esi
mov edi, dword [ebp - 4]
cmp dword [ebp - 0x48], 0
jne 0x446410
test esi, esi
jne 0x446423
mov ebx, dword [ebp - 0x118]
test ebx, ebx
jne 0x446433
or eax, 0xffffffff
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x408651
test byte [edx], 0x20
je 0x408651
jmp 0x446467
add edx, 2
mov dword [ebp + 0x10], edx
cmp edx, edi
jb 0x4086c1
jmp 0x4086ca
add byte [eax], al
add bh, al
inc ebp
mov esp, 1
mov eax, dword [eax + 4]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 1
cmp word [eax + 8], 0x33
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x60], 3
jne 0x489a71
mov esi, 2
mov ecx, dword [eax]
mov dword [ebp - 0x10], ecx
add byte [ebx - 0xfb276f8], cl
mov dword [ebp - 4], esi
cmp dword [0x4d2380], ebx
sbb eax, 0x4d2380
je 0x445f4e
add eax, dword [eax]
add byte [edx], dh
rol byte [eax + eax*8 + 0x3ee850f], 0
xor al, al
test al, al
jne 0x445f55
add eax, dword [eax]
add byte [ecx + 0x4d2384], ah
mov eax, dword [0x4d2384]
cmp byte [0x4d2389], bl
jne 0x489a78
mov dword [ebx], esp
dec ebp
add byte [edi], cl
test dword [eax], eax
aas
add al, 0
push eax
push ecx
mov dword [ebp + 0xc], eax
call fcn.00444bbb
test al, al
je 0x445f2c
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
test eax, eax
je 0x445f2c
or al, 0x8b
add byte [ebp - 0x6a7bf040], al
add eax, dword [eax]
add byte [ebx + 0x508b1058], cl
adc al, 0x81
jecxz 0x445ba0
mov ebx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
and ebx, 0xff00
inc dword [eax]
add byte [ecx + 0x55890c55], cl
mov dword [ebp + 0xc], edx
mov dword [ebp - 0xc], edx
test edx, edx
je 0x445ef9
push ebp
hlt
test ebx, 0x100
jne 0x489a80
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov eax, dword [ecx + 8]
cmp word [eax + 8], 0x4e
je 0x489a9a
mov eax, dword [ecx + esi*4]
mov dword [ebp - 0x54], edx
cmp word [eax + 8], 0
je 0x489afa
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0x20]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 4]
inc esi
push eax
push ebx
mov dword [ebp - 4], esi
call fcn.00447c1b
test eax, eax
js 0x445ec2
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x20]
cmp esi, eax
je 0x445c27
cmp dword [esi + 0xc], 4
je 0x445f3f
mov ecx, esi
call fcn.00445f7b
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.004490bb
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 4]
inc ebx
add al, 0x8b
dec ebp
cld
mov eax, dword [eax + ecx*4]
cmp word [eax + 8], 0
jne 0x489eb0
test dword [ebp + 0x42], esi
add al, 0
cmp dword [eax], 0xf
jne 0x489eb0
mov esi, dword [ebp - 8]
lea eax, [ebp - 0x20]
push 0xffffffffffffffff
push eax
inc ecx
lea eax, [ebp - 4]
push eax
mov dword [ebp - 4], ecx
mov ecx, esi
push ebx
call fcn.00447c1b
test eax, eax
js 0x445ec2
mov byte [ebp + 2], bl
add byte [eax], al
lea ecx, [ebp - 0x50]
call fcn.00445f7b
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x50]
call fcn.004490bb
mov ecx, dword [ebx + 4]
mov eax, dword [ebp - 4]
xor al, 0
add byte [ebx + 0x458b044b], cl
cld
mov eax, dword [ecx + eax*4]
cmp word [eax + 8], 0
je 0x489c80
lea ecx, [ebp - 0x40]
call fcn.00445f7b
mov esi, 1
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x40], esi
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0xc]
cmp ecx, 1
jne 0x489cba
int3
add dword [edi], ecx
test dword [ebx], ecx
inc eax
add al, 0
mov al, cl
test al, al
je 0x489cc1
test byte [eax], cl
inc eax
add al, 0
mov al, 1
test al, al
je 0x489cd1
test byte [esi], cl
inc eax
add al, 0
mov al, 1
test al, al
je 0x489ce1
test byte [eax + eax*2], dl
add al, 0
mov ecx, dword [ebp - 0x44]
cmp ecx, 1
sete al
test al, al
jne 0x445ef2
add dword [edi], ecx
xchg esp, eax
rol byte [eax + eax*8 + 0x214850f], 0
add byte [ebx - 0x7bf0fd07], al
sbb al, 0x40
add al, 0
add byte [eax], al
cmp ecx, 2
je 0x489d03
add byte [eax + eax*8 + 0x203850f], al
add byte [eax], al
test al, al
jne 0x445ef2
test al, al
jne 0x445eeb
ror byte [edi], 0x85
hlt
cmp dword [ebp - 0x44], 3
je 0x445f6e
add ecx, dword [edi]
test byte [ebp + 2], ch
add byte [eax], al
test al, al
jne 0x445eeb
test edx, esp
add dword [eax], eax
add byte [eax + eax*8 + 0x4d8d1b75], al
mov al, 0xe8
loope 0x445d13
test al, al
jne 0x445d28
lea ecx, [ebp - 0x50]
call fcn.00443f08
lea ecx, [ebp - 0x50]
test al, al
invalid
dec dword [ebp - 0x3f7b4fb3]
jne 0x489d0a
call fcn.004443f0
mov esi, dword [ebp - 0x34]
cmp esi, 1
inc byte [ecx]
jne 0x489d14
mov al, 1
test al, al
je 0x489d1b
mov al, 1
test al, al
je 0x489d2e
add dword [eax + eax*8 + 0x3fe9840f], eax
add al, 0
mov al, 1
test al, al
je 0x489d41
mov ecx, dword [ebx + 4]
mov eax, dword [ebp - 4]
mov eax, dword [ecx + eax*4]
cmp word [eax + 8], 0x7f
jne 0x489d64
mov ebx, dword [ebp - 0x58]
xor dl, dl
xor esi, esi
nop
mov eax, dword [edi]
lea ecx, [eax + 1]
mov dword [edi], ecx
cmp eax, dword [0x4d23a0]
jg 0x445db8
test eax, eax
jle 0x445db8
shl eax, 4
add eax, dword [0x4d23dc]
je 0x445db8
test dl, dl
jne 0x445db8
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp word [eax + 8], 0
jne 0x445d6b
mov eax, dword [eax]
sub eax, 0xd
je 0x445f39
sub eax, 1
jne 0x445d6b
test esi, esi
jne 0x445f33
test dword [edx - 0x4dffffff], eax
add dword [ebp - 0x4c1400a7], ecx
mov dl, 1
lea ebx, [ecx - 1]
jmp 0x445d6b
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x58], ebx
call fcn.00444542
mov esi, dword [ebp + 0xc]
cmp eax, 1
je 0x489e06
cmp dword [esi + 0xc], 8
je 0x489d70
add byte [ebx + 0xf05bc7d], al
test byte [eax + eax*2 + 4], al
add byte [edx], dh
rol byte [eax + eax*8 + 0x4090850f], 4
add byte [ebx + 0xf0fbc7d], al
test byte [edi], dh
inc eax
add al, 0
cmp dword [ebp - 0x44], 5
je 0x489e27
xor al, al
test al, al
jne 0x489e7d
cmp dword [ebp - 0x44], 0xf
je 0x489e2e
jge 0x445dac
invalid
test al, al
jne 0x489e7d
lea ecx, [ebp - 0x20]
call fcn.00445f7b
fldz
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x14], 3
fstp qword [ebp - 0x20]
call fcn.00444624
test al, al
jne 0x489e35
mov al, 1
test al, al
je 0x489e61
mov edx, esi
lea ecx, [ebp - 0x50]
call fcn.00444624
test al, al
jne 0x489e3c
inc dword [eax + eax*8 + 0x3ffa850f]
add al, 0
mov al, 1
test al, al
je 0x489e74
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 0x5c]
cmp byte [eax + 0x16d], 0
jne 0x489e43
push 0x38
call fcn.00458db6
mov ecx, dword [ebp - 0x60]
mov esi, eax
add esp, 4
lea eax, [ebp - 0x50]
mov dword [esi], ecx
mov ecx, dword [ebp - 0x58]
mov dword [esi + 8], ecx
mov ecx, dword [ebp - 0x54]
mov dword [esi + 0xc], ecx
lea ecx, [esi + 0x10]
mov dword [esi + 4], ebx
push eax
mov dword [ecx + 8], 0
call fcn.004490bb
lea eax, [ebp - 0x40]
mov dword [esi + 0x28], 0
lea ecx, [esi + 0x20]
push eax
call fcn.004490bb
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x168]
mov dword [esi + 0x30], eax
mov dword [ecx + 0x168], esi
inc dword [ecx + 0x164]
lea eax, [ebx + 1]
xor al, byte [eax]
add byte [ebx - 0x7e7407b3], cl
push 0x89000001
inc esi
xor byte [ecx + 0x168b1], cl
add bh, bh
and dword [ecx + eax], 0x1438d00
mov dword [edi], eax
lea ecx, [ebp - 0x30]
call fcn.00445f7b
lea ecx, [ebp - 0x20]
call fcn.00445f7b
add byte [eax], al
lea ecx, [ebp - 0x40]
call fcn.00445f7b
lea ecx, [ebp - 0x50]
call fcn.00445f7b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov al, 1
jmp 0x445d09
mov al, 1
jmp 0x445cef
lea ecx, [ebp - 0x20]
call fcn.00445f7b
push 1
push 0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x14], 1
loopne 0x445ed0
inc ebp
in al, dx
add dword [eax], eax
add byte [eax], al
push eax
push dword [ebp - 0x10]
mov dword [ebp - 0x20], 0
call fcn.004437f6
mov edx, eax
mov dword [ebp + 0xc], edx
mov dword [ebp - 0xc], edx
jmp 0x445bbd
xor edx, edx
jmp 0x445ba3
dec esi
jmp 0x445d6b
inc esi
jmp 0x445d6b
cmp dword [ebp - 0x14], 4
jne 0x445c15
jmp 0x489c67
mov al, 1
jmp 0x445b5f
lea eax, [ebp - 0xc]
push eax
push ecx
mov ecx, 0x4d2370
call fcn.00456311
mov ebx, dword [ebp - 0xc]
mov edx, eax
jmp 0x445ba3
mov al, 1
jmp 0x445d01
sub al, 8
mov edi, dword [ebx + 0xc]
mov dword [ebp - 8], edi
je 0x489f7a
mov eax, dword [ebx + 0x1c]
cmp eax, 5
je 0x489fa2
cmp eax, 0xf
je 0x48a021
mov ecx, dword [edi + 0xc]
cmp ecx, 1
jne 0x48a0a3
sbb byte [eax + 4], al
add byte [ebx - 0x67cd3b5], cl
add dword [edi], ecx
test dword [edi], edx
inc ecx
add al, 0
mov ecx, dword [ebx + 0x2c]
cmp ecx, 1
jne 0x48a1ae
mov ecx, dword [edi]
mov eax, dword [ebx + 0x20]
lea edx, [eax + ecx]
mov dword [ebp - 0xc], edx
cdq
mov dword [ebp - 8], eax
mov eax, ecx
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
cdq
add dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
adc ecx, edx
cdq
cmp eax, dword [ebp - 8]
jne 0x48a19a
cmp edx, ecx
jne 0x48a19a
mov eax, dword [ebp - 0xc]
mov dword [edi], eax
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x48a1e1
lea ecx, [ebp - 0x30]
call fcn.00445f7b
fldz
lea ecx, [ebx + 0x20]
fst qword [ebp - 0x30]
mov dword [ebp - 0x24], 3
mov edx, dword [ecx + 0xc]
mov eax, edx
shl eax, 6
mov eax, dword [eax + 0x4b1434]
cmp eax, 3
jne 0x48a1f3
cmp edx, 1
jne 0x48a2a8
fild dword [ecx]
fcompp
fnstsw ax
test ah, 5
jnp 0x48a583
mov ecx, dword [ebx + 0x1c]
mov eax, ecx
shl eax, 4
add eax, dword [edi + 0xc]
mov eax, dword [eax*4 + 0x4b1428]
cmp eax, 1
jne 0x4461d9
cmp ecx, 1
jne 0x48a42b
mov eax, dword [ebx + 0x10]
mov dword [ebp - 4], eax
mov eax, dword [edi + 0xc]
cmp eax, 1
jne 0x48a4d0
mov eax, dword [edi]
cmp dword [ebp - 4], eax
jl 0x446185
mov ecx, dword [ebx + 4]
mov eax, dword [ebp + 0xc]
inc ecx
mov dword [eax], ecx
mov ecx, dword [ebp - 0x28]
test ecx, ecx
jne 0x48a5a3
mov eax, dword [ebp - 0x24]
cmp eax, 5
jge 0x48a5b5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [esi + 0x16d], 0
jne 0x48a55e
cmp byte [esi + 0x16c], 0
jne 0x446211
mov edi, dword [esi + 0x168]
mov ebx, dword [edi + 0x30]
test edi, edi
je 0x4461c3
lea ecx, [edi + 0x20]
call fcn.00445f7b
lea ecx, [edi + 0x10]
call fcn.00445f7b
push 0x38
push edi
call fcn.00458da8
add esp, 8
mov dword [esi + 0x168], ebx
xor al, al
mov byte [esi + 0x16d], al
dec dword [esi + 0x164]
jmp 0x446165
sub eax, 2
cmp eax, 7
ja case.default.0x4461e5
jmp dword [eax*4 + 0x40d23c]
push dword [eax - 0x744914ff]
inc dword [edi]
adc al, 0x45
add byte [ecx], dl
rol byte [eax], cl
fcom dword [ebx]
inc ebp
add byte [ecx - 0x7effbf2f], al
rol dword [eax], 1
das
adc al, 0x45
add byte [ecx + 0x5f0040d1], al
rol dword [eax], 1
int3
mov al, 1
jmp 0x4461cb
invalid
int1
add byte [eax], al
add byte [ebx - 0x77], dl
jne 0x446259
loopne 0x446210
push ebp
clc
popal
aas
inc ebp
in al, 0x83
les ecx, [eax]
invalid
les eax, [ebx + ecx*4]
or cl, byte [ecx + 0x44a8b08]
adc byte [ebx - 0x18], dl
mov gs, word [eax]
add dword [eax], eax
cld
dec esp
add byte [eax], al
add byte [eax], al
add bh, al
add eax, 0x4cfc28
add al, byte [eax]
add byte [eax], al
add byte [eax + 0x49], bh
add bh, al
add eax, 0x4cfc40
adc ecx, esi
dec eax
add bh, al
add eax, 0x4cfc44
add byte [eax], al
add byte [eax], al
insb byte es:[edi], dx
cld
dec esp
add byte [eax], al
add byte [eax], al
add bh, al
add eax, 0x4cfc70
add byte [eax], al
add byte [eax], al
sub ch, bh
dec esp
add byte [ecx], al
add byte [eax], al
add byte [esi - 0x39], ah
add eax, 0x4cfd2c
add byte [eax], al
dec ecx
add bh, al
add eax, 0x4cfd3c
and dword [edi], edx
dec eax
add bh, al
add eax, 0x4cfd40
add byte [eax], al
add byte [eax], al
add byte [eax], al
add bh, al
add eax, 0x4cfd54
xor cl, bh
dec esp
add byte [eax], dh
stc
dec ecx
add bh, al
add eax, 0x4cfd60
js 0x489cb4
inc ecx
add bh, al
add eax, 0x4cfd64
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add eax, 0x4cfd78
sal bh, 0x49
dec ecx
add bh, al
add eax, 0x4cfd84
push es
sbb byte [eax], cl
dec eax
add bh, al
add eax, 0x4cfd88
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add bh, al
add eax, 0x4cfd8c
add byte [eax], al
add byte [eax], al
dec esp
add byte [edx], al
add byte [eax], al
add bh, al
add eax, 0x4cfd94
add al, byte [eax]
add byte [eax], al
cwde
std
dec esp
add byte [eax], al
add bh, al
add eax, 0x4cfd9c
sbb al, 0xe4
dec ecx
add bh, al
add eax, 0x4cfda8
mov ch, 0x19
dec eax
add bh, al
add eax, 0x4cfdac
add byte [eax], al
add byte [eax], al
add bh, al
add eax, 0x4cfdb0
add byte [eax], al
add byte [eax], al
add eax, 0x4cfdb4
add dword [eax], eax
add byte [eax], al
dec byte [eax + eax + 3]
add byte [eax], al
add byte [esi - 0x39], ah
add eax, 0x4cfe04
add byte [eax], al
pop ds
dec eax
add bh, al
add eax, 0x4cfe18
add byte [eax], al
add byte [eax], al
dec esp
add byte [eax], al
add byte [eax], al
add bh, al
add eax, 0x4cfe1c
add byte [eax], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add bh, al
add eax, 0x4cfe24
add al, byte [eax]
add byte [eax], al
invalid
add byte [eax], al
add byte [eax], al
add bh, al
add eax, 0x4cfe40
add byte [eax], al
add byte [eax], al
dec esp
add byte [eax], al
add byte [eax], al
add bh, al
add eax, str.3D_4
add byte [eax], al
add byte [eax], al
mov bl, 0x16
dec eax
add bh, al
add eax, 0x4cfe60
add byte [eax], al
add byte [eax], al
add eax, 0x4cfec8
sahf
adc al, 0x49
add bh, al
add eax, 0x4cfecc
add byte [eax], al
add byte [eax], al
add eax, 0x4cfed8
add al, byte [eax]
add byte [eax], al
pushal
dec dword [eax + eax]
add byte [eax], al
add bh, al
add eax, 0x4cff64
add byte [eax], al
add byte [eax], al
dec dword [eax + eax - 0x48]
dec ecx
add bh, al
add eax, 0x4cffe8
dec ecx
sbb cl, byte [ecx]
dec dword [eax + eax]
add byte [eax], al
add bh, al
add eax, 0x4cfff0
add byte [eax], al
add byte [eax], al
add al, bl
call 0x60fa231
or al, 0
dec ebp
add byte [eax - 0x38ffb6e5], ah
add eax, 0x4d0010
add byte [ebp], cl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add bh, al
add eax, 0x4d006c
and bh, ch
dec ecx
add bh, al
add eax, 0x4d0078
retf 0x491d
add bh, al
add eax, 0x4d0138
add byte [eax], al
add byte [eax], al
add byte [eax], al
add bh, al
add eax, 0x4d018c
sbb dh, ch
dec ecx
add bh, al
add eax, 0x4d0198
pop eax
dec ecx
add bh, al
add eax, 0x4d019c
add byte [eax], al
add byte [eax], al
add eax, dword [eax]
add byte [eax], al
add eax, 0x4d01d4
js 0x48a550
dec ecx
add bh, al
add eax, 0x4d01e0
and byte [edi], 0x49
add bh, al
add eax, 0x4d01e4
add byte [eax], al
add byte [eax], al
add byte [eax], al
add eax, 0x4d01f8
add bh, dh
dec ecx
add bh, al
add eax, 0x4d0204
dec edi
sub byte [ecx], cl
add bh, al
add eax, 0x4d0208
add byte [eax], al
add byte [eax], al