Function at 0x449d10
Capabilities:
Packed with generic packer

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4d30c8
push eax
mov eax, dword [esp + 0x14]
mov dword fs:[0], esp
sub esp, 0xbc
cmp eax, 0x53
push ebx
push esi
push edi
mov esi, ecx
ja 0x449f54
je 0x449f2e
sub eax, 2
je 0x449efc
sub eax, 0x29
je 0x449ee1
sub eax, 0x23
jne 0x449f6b
mov eax, dword [esp + 0xe4]
mov eax, dword [eax + 8]
add eax, 0xcd
cmp eax, 5
ja case.0x449d76.204
jmp dword [eax*4 + 0x44a310]
mov dword [esi + 0x7a8], 3
jmp 0x44a2f0
mov edi, dword [esp + 0xd8]
mov ebx, dword [0x4d681c]
push 0xb2
push edi
call ebx
push 0xb4
push edi
mov byte [esi + 0x298], al
call ebx
push 0xb6
push edi
mov byte [esi + 0x299], al
call ebx
push 0x156
push edi
mov byte [esi + 0x29a], al
call ebx
push 0x8d
push edi
mov byte [esi + 0x4ee], al
call ebx
push 0x92
push edi
mov byte [esi + 0x280], al
call ebx
push 0x9a
push edi
mov byte [esi + 0x281], al
call ebx
push 0x97
push edi
mov byte [esi + 0x282], al
call ebx
push 0x88
push edi
mov byte [esi + 0x283], al
call ebx
push 0x116
push edi
mov byte [esi + 0x284], al
call ebx
push 0x11c
push edi
mov byte [esi + 0x285], al
call ebx
push 0xba
push edi
mov byte [esi + 0x286], al
call ebx
push 0x95
push edi
mov byte [esi + 0x21c], al
call ebx
push 0x13c
push edi
mov byte [esi + 0x2c1], al
call ebx
push 0x421
push edi
mov byte [esi + 0x2ca], al
call ebx
mov ecx, dword [esi + 0x7b4]
mov byte [esi + 0x527], al
push 0x1388
push edi
mov edx, dword [ecx + 0x3c]
mov dword [esi + 0x528], edx
call dword [0x4d6768]
push eax
call ebx
neg eax
sbb eax, eax
push 0
neg eax
inc eax
push 0
push edi
mov dword [esi + 0x7b0], eax
call dword [0x4d6820]
jmp 0x44a2f0
mov eax, dword [esp + 0xd8]
push 0
push 0
push eax
call dword [0x4d6820]
jmp 0x44a2f0
mov dword [esi + 0x7b0], 0
jmp 0x44a2f0
mov ecx, dword [esp + 0xd8]
push 0xa
push 1
push str.ACDSee.hlp
jmp 0x44a2e9
mov ecx, dword [esi + 0x7b4]
mov eax, dword [esp + 0xe4]
push eax
mov edx, dword [ecx]
call dword [edx + 0xb8]
jmp 0x44a2f0
push str.ViewerBG
push str.SoftwareACD_SystemsACDSee
call fcn.004203e0
mov ecx, dword [esi + 0x7b4]
add esp, 8
test ecx, ecx
je 0x449f1f
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov dword [esi + 0x7b4], 0
jmp 0x44a2f0
mov eax, dword [esp + 0xe4]
cmp dword [eax + 4], 1
jne 0x44a2f0
mov eax, dword [eax + 0xc]
push 0x4eef7c
push 0xc
push str.ACDSee.hlp
push eax
jmp 0x44a2ea
sub eax, 0x7b
je 0x44a2d6
sub eax, 0x95
je 0x44a100
dec eax
je case.0x449d76.204
xor eax, eax
jmp 0x44a2f5
mov ecx, dword [esp + 0xe0]
mov eax, ecx
shr eax, 0x10
test ax, ax
jne 0x44a2f0
and ecx, 0xffff
sub ecx, 0x88
je 0x44a0d4
sub ecx, 0x396
je 0x44a0a3
sub ecx, 0x22
jmp 0x4d59a0
mov edx, dword [0x4f5e08]
lea ecx, [esp + 0x78]
push 0x50
push ecx
push 0xfc
push edx
call dword [0x4d679c]
mov esi, dword [esp + 0xd8]
mov edi, dword [0x4d66f4]
push 0
push 0x420
push esi
call edi
mov ebx, 1
push ebx
push 0x421
push esi
call edi
lea ecx, [esp + 0x10]
call fcn.0047d220
mov eax, dword [0x4f5e08]
mov ecx, dword [0x4f83ec]
mov edx, dword fs:[0x2c]
mov dword [esp + 0x10], eax
mov dword [esp + 0xd0], ebx
mov dword [esp + 0x14], esi
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ebx
mov cl, byte [eax + 0x508]
test cl, cl
je 0x44a04d
mov ecx, dword [eax + 0x510]
mov edx, dword [eax + 0x514]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
jmp 0x44a05d
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0x3ff00000
lea ecx, [esp + 0x78]
lea esi, [eax + 0x534]
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x40], esi
call fcn.0047d260
test eax, eax
je 0x44a08a
mov edx, dword [esp + 0x48]
mov eax, dword [edx]
push eax
push esi
call dword [0x4d633c]
lea ecx, [esp + 0x10]
mov dword [esp + 0xd0], 0xffffffff
call fcn.0047d8d0
jmp 0x44a2f0
mov edi, dword [esp + 0xd8]
mov ebx, dword [0x4d66f4]
push 1
push 0x420
push edi
call ebx
push 0
push 0x421
push edi
call ebx
mov ecx, dword [esi + 0x7b4]
call fcn.004203a0
jmp 0x44a2f0
mov esi, dword [esp + 0xd8]
push 0x88
push esi
call dword [0x4d681c]
push eax
push 0x116
push esi
call dword [0x4d6808]
push eax
call dword [0x4d67f8]
jmp 0x44a2f0
mov eax, dword [esi + 0x7a4]
mov edi, dword [esp + 0xd8]
test eax, eax
jne 0x44a12d
push 0
push edi
call dword [0x4d6768]
push eax
call fcn.00470c80
add esp, 8
mov dword [esi + 0x7a4], 1
push edi
call fcn.004bd9fe
push 0xdc
mov ebx, eax
call fcn.004bd49b
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
mov dword [esp + 0xd0], 0
je 0x44a15e
mov ecx, eax
call fcn.0041fc40
jmp 0x44a160
xor eax, eax
mov ecx, dword [esi + 0x528]
push str.ViewerBG
mov dword [esi + 0x7b4], eax
push str.SoftwareACD_SystemsACDSee
mov dword [esp + 0xd8], 0xffffffff
mov dword [eax + 0x3c], ecx
call fcn.004204b0
mov ecx, dword [esi + 0x7b4]
add esp, 8
push ebx
push 0x41e
call fcn.004c0565
mov ebx, dword [0x4d66f4]
xor edx, edx
mov dl, byte [esi + 0x298]
push edx
push 0xb2
push edi
call ebx
xor eax, eax
mov al, byte [esi + 0x299]
push eax
push 0xb4
push edi
call ebx
xor ecx, ecx
mov cl, byte [esi + 0x29a]
push ecx
push 0xb6
push edi
call ebx
xor edx, edx
mov dl, byte [esi + 0x4ee]
push edx
push 0x156
push edi
call ebx
xor eax, eax
mov al, byte [esi + 0x280]
push eax
push 0x8d
push edi
call ebx
xor ecx, ecx
mov cl, byte [esi + 0x281]
push ecx
push 0x92
push edi
call ebx
xor edx, edx
mov dl, byte [esi + 0x282]
push edx
push 0x9a
push edi
call ebx
xor eax, eax
mov al, byte [esi + 0x283]
push eax
push 0x97
push edi
call ebx
xor ecx, ecx
mov cl, byte [esi + 0x284]
push ecx
push 0x88
push edi
call ebx
xor edx, edx
mov dl, byte [esi + 0x285]
push edx
push 0x116
push edi
call ebx
xor eax, eax
mov al, byte [esi + 0x286]
push eax
push 0x11c
push edi
call ebx
xor ecx, ecx
mov cl, byte [esi + 0x21c]
push ecx
push 0xba
push edi
call ebx
xor edx, edx
mov dl, byte [esi + 0x2c1]
push edx
push 0x95
push edi
call ebx
xor eax, eax
mov al, byte [esi + 0x2ca]
push eax
push 0x13c
push edi
call ebx
mov dl, byte [esi + 0x527]
xor ecx, ecx
test dl, dl
sete cl
push ecx
push 0x420
push edi
call ebx
xor edx, edx
mov dl, byte [esi + 0x527]
push edx
push 0x421
push edi
call ebx
xor eax, eax
mov al, byte [esi + 0x284]
push eax
push 0x116
push edi
call dword [0x4d6808]
push eax
call dword [0x4d67f8]
jmp 0x44a2f0
mov ecx, dword [esp + 0xe0]
push 0x4eef7c
push 0xc
push str.ACDSee.hlp
push ecx
call dword [0x4d6780]
mov eax, 1
mov ecx, dword [esp + 0xc8]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0xc8
ret 0x10
pushal
cmp ecx, 0
je 0x4d59ac
popal
jmp 0x44a2f0
cmp ebx, 0x111
je 0x4d59ba
popal
jmp 0x44a2f0
popal
jmp 0x449fae