Function at 0x4047bd
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x456061
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x26c
mov dword [ebp - 0x25c], ecx
push 2
mov ecx, dword [ebp - 0x25c]
call fcn.0040d3f0
push 3
mov ecx, dword [ebp - 0x25c]
call fcn.0040d3f0
mov eax, dword [ebp - 0x25c]
mov cl, byte [eax + 0x190]
mov byte [ebp - 0x30], cl
mov byte [ebp - 0x2c], 0
mov edx, dword [ebp - 0x25c]
xor eax, eax
mov al, byte [edx + 0x190]
cmp eax, 2
jne 0x404859
push 0
push 0
push str.Camera_is_closed_Please_Open_it.
call fcn.004517ee
push 0
push 0xc8
push 2
mov ecx, dword [ebp - 0x25c]
call fcn.0040d3c0
push 0
push 0x64
push 3
mov ecx, dword [ebp - 0x25c]
call fcn.0040d3c0
jmp 0x404f84
mov ecx, dword [ebp - 0x25c]
mov byte [ecx + 0x190], 2
push 0
push 0x3e8
mov ecx, dword [ebp - 0x25c]
call fcn.0044e95d
mov ecx, eax
call fcn.0044eb8e
push 0
push 0x452
mov ecx, dword [ebp - 0x25c]
call fcn.0044e95d
mov ecx, eax
call fcn.0044eb8e
mov edx, dword [ebp - 0x30]
and edx, 0xff
test edx, edx
jne 0x4048cd
push 0xffffffffffffffff
mov eax, dword [ebp - 0x25c]
mov ecx, dword [eax + 0x1dc]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebp - 0x25c]
mov eax, dword [edx + 0x1dc]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x25c]
mov edx, dword [ecx + 0x1e0]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [ebp - 0x25c]
mov ecx, dword [eax + 0x1e0]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x25c]
mov ax, word [edx + 0x168]
mov word [ebp - 0x14], ax
mov ecx, dword [ebp - 0x25c]
mov dx, word [ecx + 0x16a]
mov word [ebp - 0x28], dx
mov eax, dword [ebp - 0x25c]
mov cl, byte [eax + 0x16c]
mov byte [ebp - 0x18], cl
push 0x467b24
mov edx, dword [ebp - 0x25c]
mov eax, dword [edx + 0x17c]
push eax
call fcn.00437980
add esp, 8
test eax, eax
jne 0x404950
mov cx, word [ebp - 0x28]
add cx, 0xa
mov word [ebp - 0x28], cx
mov edx, dword [ebp - 0x14]
and edx, 0xffff
mov eax, dword [ebp - 0x28]
and eax, 0xffff
imul edx, eax
imul edx, edx, 3
push edx
call fcn.004375d5
add esp, 4
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x4049be
push 0
push 0
push 0x467b2c
call fcn.004517ee
push 1
push 0x3e8
mov ecx, dword [ebp - 0x25c]
call fcn.0044e95d
mov ecx, eax
call fcn.0044eb8e
push 1
push 0x452
mov ecx, dword [ebp - 0x25c]
call fcn.0044e95d
mov ecx, eax
call fcn.0044eb8e
jmp 0x404f84
mov ecx, dword [ebp - 0x14]
and ecx, 0xffff
mov edx, dword [ebp - 0x28]
and edx, 0xffff
imul ecx, edx
lea eax, [ecx + ecx + 0x400]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.004375d5
add esp, 4
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x404a43
mov edx, dword [ebp - 0x24]
push edx
call fcn.0043788d
add esp, 4
push 0
push 0
push str.Memory_allocate_error_
call fcn.004517ee
push 1
push 0x3e8
mov ecx, dword [ebp - 0x25c]
call fcn.0044e95d
mov ecx, eax
call fcn.0044eb8e
push 1
push 0x452
mov ecx, dword [ebp - 0x25c]
call fcn.0044e95d
mov ecx, eax
call fcn.0044eb8e
jmp 0x404f84
mov eax, dword [ebp - 0x10]
push eax
push 0
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.00437170
add esp, 0xc
mov dword [ebp - 0x20], 0
jmp 0x404a67
mov edx, dword [ebp - 0x20]
add edx, 1
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 5
jae 0x404aab
mov eax, dword [ebp - 0x14]
and eax, 0xffff
mov ecx, dword [ebp - 0x28]
and ecx, 0xffff
imul eax, ecx
mov edx, dword [ebp - 0x18]
and edx, 0xff
imul eax, edx
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x25c]
mov ecx, dword [ecx + 0x52ec]
call fcn.00426c50
test eax, eax
je 0x404aa9
jmp 0x404aab
jmp 0x404a5e
cmp dword [ebp - 0x20], 5
jne 0x404ac4
push 0
push 0
push str.failed_to_save_
call fcn.004517ee
jmp 0x404ef0
mov edx, dword [ebp - 0x25c]
mov ax, word [edx + 0x16a]
mov word [ebp - 0x28], ax
mov ecx, dword [ebp - 0x25c]
xor edx, edx
mov dx, word [ecx + 0x16a]
push edx
mov eax, dword [ebp - 0x25c]
xor ecx, ecx
mov cx, word [eax + 0x168]
push ecx
mov edx, dword [ebp - 0x24]
push edx
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x25c]
mov ecx, dword [ecx + 0x52ec]
call fcn.00425050
mov edx, dword [ebp - 0x25c]
mov al, byte [ebp - 0x30]
mov byte [edx + 0x190], al
mov ecx, dword [ebp - 0x30]
and ecx, 0xff
test ecx, ecx
jne 0x404b5a
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov edx, dword [ebp - 0x25c]
mov dword [edx + 0x1dc], eax
mov eax, dword [ebp - 0x25c]
push eax
push 0
push 0x411cf0
call fcn.0043771a
add esp, 0xc
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, dword [ebp - 0x25c]
mov dword [ecx + 0x1e0], eax
mov edx, dword [ebp - 0x25c]
push edx
push 0
push 0x411f0a
call fcn.0043771a
add esp, 0xc
lea eax, [ebp - 0x248]
push eax
call fcn.0044966c
push eax
lea ecx, [ebp - 0x38]
call fcn.0040d040
lea ecx, [ebp - 0x34]
call fcn.0040cf40
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x38]
call fcn.0040d0e0
push eax
lea ecx, [ebp - 0x38]
call fcn.0040d0c0
push eax
lea ecx, [ebp - 0x38]
call fcn.0040d0a0
push eax
lea ecx, [ebp - 0x38]
call fcn.0040d080
push eax
lea ecx, [ebp - 0x38]
call fcn.0040d060
push eax
push str.P_02d_02d_02d_02d_02d
lea ecx, [ebp - 0x34]
push ecx
call fcn.00449087
add esp, 0x1c
lea ecx, [ebp - 0x238]
call fcn.0040cf40
mov byte [ebp - 4], 1
push str.Jpeg_File_.jpg_.jpgBitmap_File_.bmp_.bmp
lea ecx, [ebp - 0x3c]
call fcn.0044b8e7
mov byte [ebp - 4], 2
push 0
lea ecx, [ebp - 0x3c]
call fcn.004014f0
push eax
push 6
lea ecx, [ebp - 0x34]
call fcn.004014f0
push eax
push 0
push 0
lea ecx, [ebp - 0x234]
call fcn.00449138
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x234]
call fcn.0044929a
cmp eax, 1
jne 0x404eb7
lea edx, [ebp - 0x24c]
push edx
lea ecx, [ebp - 0x234]
call fcn.00449375
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
mov dword [ebp - 0x264], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x264]
push ecx
lea ecx, [ebp - 0x34]
call fcn.0044b9b2
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24c]
call fcn.0044b879
mov edx, dword [ebp - 0x19e]
and edx, 0xffff
test edx, edx
jne 0x404d0b
mov eax, dword [ebp - 0x1c0]
mov dword [ebp - 0x268], eax
cmp dword [ebp - 0x268], 1
je 0x404cda
cmp dword [ebp - 0x268], 2
je 0x404cc8
cmp dword [ebp - 0x268], 3
je 0x404cec
jmp 0x404cfc
push 0x467bb4
lea ecx, [ebp - 0x238]
call fcn.0044ba02
jmp 0x404cfc
push 0x467bbc
lea ecx, [ebp - 0x238]
call fcn.0044ba02
jmp 0x404cfc
push 0x467bc4
lea ecx, [ebp - 0x238]
call fcn.0044ba02
lea ecx, [ebp - 0x238]
push ecx
lea ecx, [ebp - 0x34]
call fcn.0044bc91
push 4
lea edx, [ebp - 0x250]
push edx
lea ecx, [ebp - 0x34]
call fcn.00448c46
mov dword [ebp - 0x26c], eax
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x270], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x270]
push ecx
lea ecx, [ebp - 0x238]
call fcn.0044b9b2
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x250]
call fcn.0044b879
lea ecx, [ebp - 0x238]
call fcn.0044bd40
push str..raw
lea edx, [ebp - 0x238]
push edx
call fcn.0040cfe0
and eax, 0xff
test eax, eax
je 0x404e10
push 0
lea ecx, [ebp - 0x34]
call fcn.004014f0
push eax
call dword [sym.imp.KERNEL32.dll__lcreat]
mov dword [ebp - 0x23c], eax
cmp dword [ebp - 0x23c], 0
jl 0x404e0b
mov eax, dword [ebp - 0x25c]
xor ecx, ecx
mov cx, word [eax + 0x168]
mov edx, dword [ebp - 0x25c]
xor eax, eax
mov ax, word [edx + 0x16a]
imul ecx, eax
mov edx, dword [ebp - 0x25c]
xor eax, eax
mov al, byte [edx + 0x16c]
sub eax, 1
neg eax
sbb eax, eax
neg eax
add eax, 1
imul ecx, eax
mov dword [ebp - 0x240], ecx
mov ecx, dword [ebp - 0x240]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll__lwrite]
mov dword [ebp - 0x244], eax
mov ecx, dword [ebp - 0x23c]
push ecx
call dword [sym.imp.KERNEL32.dll__lclose]
jmp 0x404eb7
push str..jpg
lea edx, [ebp - 0x238]
push edx
call fcn.0040cfe0
and eax, 0xff
test eax, eax
je 0x404e63
mov eax, dword [ebp - 0x28]
and eax, 0xffff
push eax
mov ecx, dword [ebp - 0x14]
and ecx, 0xffff
push ecx
mov edx, dword [ebp - 0x24]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x254], esp
lea eax, [ebp - 0x34]
push eax
call fcn.0044b5ee
mov dword [ebp - 0x274], eax
call fcn.0040ef49
add esp, 0x10
jmp 0x404eb7
push str..bmp
lea ecx, [ebp - 0x238]
push ecx
call fcn.0040cfe0
and eax, 0xff
test eax, eax
je 0x404eb7
mov edx, dword [ebp - 0x28]
and edx, 0xffff
push edx
mov eax, dword [ebp - 0x14]
and eax, 0xffff
push eax
mov ecx, dword [ebp - 0x24]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x258], esp
lea edx, [ebp - 0x34]
push edx
call fcn.0044b5ee
mov dword [ebp - 0x278], eax
mov ecx, dword [ebp - 0x25c]
call fcn.0040578c
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x234]
call fcn.0040d100
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3c]
call fcn.0044b879
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x238]
call fcn.0044b879
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call fcn.0044b879
mov eax, dword [ebp - 0x1c]
push eax
call fcn.0043788d
add esp, 4
mov dword [ebp - 0x1c], 0
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.0043788d
add esp, 4
mov dword [ebp - 0x24], 0
push 0
push 0xc8
push 2
mov ecx, dword [ebp - 0x25c]
call fcn.0040d3c0
push 0
push 0x64
push 3
mov ecx, dword [ebp - 0x25c]
call fcn.0040d3c0
push 1
push 0x3e8
mov ecx, dword [ebp - 0x25c]
call fcn.0044e95d
mov ecx, eax
call fcn.0044eb8e
push 1
push 0x452
mov ecx, dword [ebp - 0x25c]
call fcn.0044e95d
mov ecx, eax
call fcn.0044eb8e
push 0x452
mov ecx, dword [ebp - 0x25c]
call fcn.0044e95d
mov ecx, eax
call fcn.0044ebb5
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret