Function at 0x4110b0
Capabilities:
Get file version info

Disassembly:
sub esp, 0x570
mov eax, dword [0x42610c]
xor eax, esp
mov dword [esp + 0x56c], eax
push ebx
mov ebx, dword [esp + 0x578]
push ebp
mov ebp, dword [esp + 0x584]
push esi
push edi
push 0
mov dword [esp + 0x20], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov ecx, 7
mov esi, str.https:__primary.copyminder.com
mov edi, 0x427f40
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0
movsb byte es:[edi], byte [esi]
mov dword [0x427f14], ebx
call fcn.0041241b
push eax
call fcn.00414112
add esp, 8
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0x22c
push 0
push 0x429b40
call fcn.004122b0
mov eax, dword [0x427f14]
mov esi, dword [sym.imp.USER32.dll_LoadBitmapA]
add esp, 0xc
push 0x6d
push eax
mov dword [0x429b40], 0x22c
call esi
mov ecx, dword [0x427f14]
push 0x6b
push ecx
mov dword [0x42919c], eax
call esi
mov edx, dword [0x427f14]
push 0x6c
push edx
mov dword [0x427f10], eax
call esi
mov dword [0x429b34], eax
mov eax, dword [0x427f14]
push 0x6e
push eax
call esi
mov dword [0x4281cc], eax
mov eax, ebp
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x411180
sub eax, edx
inc eax
push eax
call fcn.00411e74
mov edx, eax
add esp, 4
mov dword [esp + 0x10], edx
mov ebx, 1
test edx, edx
je 0x4111b3
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, ebx
test cl, cl
jne 0x4111a6
jmp 0x4111b7
mov dword [esp + 0x10], ebp
push 0x42331c
push ebp
call fcn.004140ad
add esp, 4
push eax
call fcn.00412ff0
add esp, 8
test eax, eax
je 0x411206
mov edx, dword [0x427f14]
push 0x1f4
lea ecx, [esp + 0x2c]
push ecx
push 0xe
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x21
push 0x4260d8
lea eax, [esp + 0x30]
push eax
push 0
call fcn.00405f30
add esp, 0x10
jmp 0x411bae
push 0x423318
push ebp
call fcn.004140ad
add esp, 4
push eax
call fcn.00412ff0
add esp, 8
test eax, eax
je 0x411227
mov dword [0x428d8c], ebx
push 0x423314
push ebp
call fcn.004140ad
add esp, 4
push eax
call fcn.00412ff0
add esp, 8
test eax, eax
je 0x411248
mov dword [0x428364], ebx
push 0x423310
push ebp
call fcn.004140ad
add esp, 4
push eax
call fcn.00412ff0
add esp, 8
test eax, eax
je 0x41144f
sub eax, ebp
mov ecx, eax
mov eax, ebp
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x411270
sub eax, esi
cmp ecx, eax
jae 0x41129d
lea ecx, [ecx]
cmp byte [ecx + ebp], 0x22
je 0x41129d
mov eax, ebp
add ecx, ebx
lea esi, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x411290
sub eax, esi
cmp ecx, eax
jb 0x411280
mov eax, ebp
inc ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4112a3
sub eax, esi
cmp ecx, eax
jae 0x4112d5
mov edi, 0x429b4a
sub edi, ecx
mov al, byte [ecx + ebp]
cmp al, 0x22
je 0x4112d5
mov byte [edi + ecx], al
mov eax, ebp
add ecx, ebx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4112c8
sub eax, esi
cmp ecx, eax
jb 0x4112b7
mov eax, ebp
add ecx, 3
lea esi, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4112e0
sub eax, esi
cmp ecx, eax
jae 0x411312
mov edi, 0x429c4b
sub edi, ecx
mov al, byte [ecx + ebp]
cmp al, 0x22
je 0x411312
mov byte [edi + ecx], al
mov eax, ebp
add ecx, ebx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x411305
sub eax, esi
cmp ecx, eax
jb 0x4112f4
mov eax, ebp
add ecx, 3
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x411320
sub eax, esi
cmp ecx, eax
jae 0x411352
mov edi, 0x429d4c
sub edi, ecx
mov al, byte [ecx + ebp]
cmp al, 0x22
je 0x411352
mov byte [edi + ecx], al
mov eax, ebp
add ecx, ebx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x411345
sub eax, esi
cmp ecx, eax
jb 0x411334
mov eax, ebp
add ecx, 3
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x411360
sub eax, esi
cmp ecx, eax
jae 0x411391
lea edi, [esp + 0x28]
sub edi, ecx
mov al, byte [ecx + ebp]
cmp al, 0x22
je 0x411391
mov byte [edi + ecx], al
mov eax, ebp
add ecx, ebx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x411384
sub eax, esi
cmp ecx, eax
jb 0x411373
mov al, byte [esp + 0x28]
mov dword [0x429d64], 0
cmp al, 0x53
je 0x4113a7
cmp al, 0x73
jne 0x4113ad
mov dword [0x429d64], ebx
cmp al, 0x41
je 0x4113b5
cmp al, 0x61
jne 0x4113bf
mov dword [0x429d64], 2
cmp al, 0x42
je 0x4113c7
cmp al, 0x62
jne 0x4113d1
mov dword [0x429d64], 3
mov al, byte [esp + 0x29]
cmp al, 0x41
je 0x4113dd
cmp al, 0x61
jne 0x4113e4
or dword [0x429d64], 4
push 0x429d4c
call fcn.00413ea1
push eax
call fcn.00413b5e
add esp, 8
mov edx, 0x429d4c
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx], cl
add eax, ebx
add edx, ebx
test cl, cl
jne 0x411400
cmp byte [0x429b4a], cl
je 0x4114d9
cmp byte [0x429c4b], cl
je 0x4114d9
cmp byte [0x429d4c], cl
je 0x4114d9
cmp dword [0x429d64], 0
je 0x4114d9
mov dword [0x4291f8], ebx
mov dword [0x429340], ebx
mov dword [0x4291f4], ebx
push 0x42330c
push ebp
call fcn.004140ad
add esp, 4
push eax
call fcn.00412ff0
add esp, 8
test eax, eax
je 0x411559
sub eax, ebp
mov ecx, eax
mov eax, ebp
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x411477
sub eax, esi
cmp ecx, eax
jae 0x41149e
cmp byte [ecx + ebp], 0x22
je 0x41149e
mov eax, ebp
add ecx, ebx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x411491
sub eax, esi
cmp ecx, eax
jb 0x411484
mov eax, ebp
mov dword [esp + 0x14], 0
inc ecx
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4114b0
sub eax, esi
cmp ecx, eax
jae 0x41153d
mov edx, dword [esp + 0x10]
mov eax, ebp
sub eax, edx
mov ebx, 0x428e20
lea esi, [ecx + edx]
mov dword [esp + 0x10], eax
sub ebx, ecx
jmp 0x411514
mov edx, dword [0x427f14]
push 0xc8
lea ecx, [esp + 0x2c]
push ecx
push 0xf
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x21
push 0x4260d8
lea eax, [esp + 0x30]
push eax
push 0
call fcn.00405f30
add esp, 0x10
jmp 0x411bdd
mov eax, dword [esp + 0x10]
cmp byte [eax + esi], 0x22
je 0x41153d
mov dl, byte [esi]
inc dword [esp + 0x14]
mov byte [ebx + ecx], dl
mov eax, ebp
inc ecx
inc esi
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x411530
sub eax, edi
cmp ecx, eax
jb 0x411510
mov eax, dword [esp + 0x14]
mov byte [eax + 0x428e20], 0
mov dword [0x428364], 1
mov ebx, 1
jmp 0x411560
mov byte [0x428e20], 0
push 0x423308
push ebp
call fcn.004140ad
add esp, 4
push eax
call fcn.00412ff0
add esp, 8
test eax, eax
je 0x41165a
sub eax, ebp
mov esi, eax
mov eax, ebp
mov dword [0x4291f8], ebx
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x411590
sub eax, edx
cmp esi, eax
jae 0x41165a
cmp byte [esi + ebp], 0x22
mov eax, ebp
je 0x4115c2
add esi, ebx
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4115b0
sub eax, edx
cmp esi, eax
jb 0x4115a1
jmp 0x41165a
add esi, ebx
mov ecx, esi
lea edi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4115d0
sub eax, edi
cmp esi, eax
jae 0x411600
lea ebx, [esp + 0x28]
sub ebx, esi
mov al, byte [ecx + ebp]
cmp al, 0x22
je 0x411600
mov byte [ebx + ecx], al
mov eax, ebp
inc ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4115f3
sub eax, edi
cmp ecx, eax
jb 0x4115e3
sub ecx, esi
lea eax, [esp + 0x28]
xor edx, edx
mov byte [esp + ecx + 0x28], 0
xor edi, edi
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x411612
sub eax, esi
mov ebx, 1
je 0x41164d
mov al, byte [esp + edx + 0x28]
cmp al, 0x22
je 0x411632
mov byte [edi + 0x428fc0], al
add edi, ebx
lea eax, [esp + 0x28]
add edx, ebx
lea esi, [eax + 1]
jmp 0x411640
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x411640
sub eax, esi
cmp edx, eax
jb 0x411622
mov byte [edi + 0x428fc1], 0
mov dword [0x4291f4], ebx
push str._pre
push ebp
call fcn.004140ad
add esp, 4
push eax
call fcn.00412ff0
add esp, 8
test eax, eax
je 0x41167b
mov dword [0x42745c], ebx
push 0x3f2
push 4
lea ecx, [esp + 0x30]
push ecx
xor esi, esi
push esi
push 2
push str.SoftwareMicrocosmCopyMinderProdCodes
push esi
mov dword [0x42a958], esi
call fcn.0040a530
add esp, 0x1c
test eax, eax
je 0x411bdd
lea edx, [esp + 0x28]
push edx
call fcn.004132ca
add esp, 4
mov dword [0x42a958], eax
cmp eax, esi
jbe 0x411720
mov edi, 0x4290e0
push esi
lea eax, [esp + 0x2c]
push 0x4230dc
push eax
call fcn.0041246c
push 0x3f3
push 0x11
push edi
lea ecx, [esp + 0x40]
push ecx
push 2
push str.SoftwareMicrocosmCopyMinderProdCodes
push 0
call fcn.0040a530
add esp, 0x28
test eax, eax
jne 0x411713
mov ecx, dword [0x42a958]
cmp esi, ecx
jae 0x41170d
mov eax, edi
sub ecx, esi
mov byte [eax], 0
add eax, 0x11
sub ecx, ebx
jne 0x411703
mov dword [0x42a958], esi
add esi, ebx
add edi, 0x11
cmp esi, dword [0x42a958]
jb 0x4116c3
push 0x3f4
push 4
lea edx, [esp + 0x30]
push edx
push 0
push 2
push str.SoftwareMicrocosmCopyMinderLastOpenedList
push 0
mov dword [0x429198], 0
mov byte [esp + 0x44], 0
call fcn.0040a530
add esp, 0x1c
test eax, eax
je 0x411bdd
lea eax, [esp + 0x28]
push eax
call fcn.004132ca
add esp, 4
xor esi, esi
mov dword [0x429198], eax
test eax, eax
jbe 0x4117d8
mov edi, 0x428380
push esi
lea ecx, [esp + 0x2c]
push 0x4230dc
push ecx
call fcn.0041246c
push 0x3f5
push 0x101
push edi
lea edx, [esp + 0x40]
push edx
push 2
push str.SoftwareMicrocosmCopyMinderLastOpenedList
push 0
call fcn.0040a530
add esp, 0x28
test eax, eax
jne 0x4117c8
mov ecx, dword [0x429198]
cmp esi, ecx
jae 0x4117c2
mov eax, edi
sub ecx, esi
mov byte [eax], 0
add eax, 0x101
sub ecx, ebx
jne 0x4117b6
mov dword [0x429198], esi
add esi, ebx
add edi, 0x101
cmp esi, dword [0x429198]
jb 0x411773
push 0x3f6
push 8
push 0x429d70
push 0x4230ec
push 2
push str.SoftwareMicrocosmCopyMinder
push 0
mov byte [0x429d70], 0
call fcn.0040a530
add esp, 0x1c
test eax, eax
je 0x411bdd
push 0x3fe
push 0x50
push 0x429220
push str.password
push 2
push str.SoftwareMicrocosmCopyMinder
push 0
call fcn.0040a530
add esp, 0x1c
test eax, eax
je 0x411bdd
push 0x404
push 0xa
lea eax, [esp + 0x30]
push eax
push str.flags
push 2
push str.SoftwareMicrocosmCopyMinder
push 0
mov byte [esp + 0x44], 0
call fcn.0040a530
add esp, 0x1c
test eax, eax
je 0x411bdd
lea ecx, [esp + 0x28]
push ecx
call fcn.004132ca
add esp, 4
test eax, eax
jne 0x411912
mov eax, 0x429220
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x411880
sub eax, edx
push eax
lea edx, [esp + 0x2c]
push edx
push 0x429220
call fcn.00401970
add esp, 0xc
xor eax, eax
mov edi, edi
mov cl, byte [esp + eax + 0x28]
mov byte [eax + 0x429220], cl
add eax, ebx
test cl, cl
jne 0x4118a0
lea eax, [esp + 0x28]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4118b7
push 0x405
sub eax, edx
push eax
lea eax, [esp + 0x30]
push eax
push str.password
push 2
push str.SoftwareMicrocosmCopyMinder
push 0
call fcn.0040a530
add esp, 0x1c
test eax, eax
je 0x411bdd
push 0x406
push 2
push 0x423124
push str.flags
push ebx
push str.SoftwareMicrocosmCopyMinder
push 0
call fcn.0040a530
add esp, 0x1c
test eax, eax
je 0x411bdd
cmp byte [0x429d70], 0
mov ebp, dword [sym.imp.USER32.dll_DialogBoxParamA]
jne 0x41193c
mov ecx, dword [esp + 0x1c]
push 0
push 0x40b580
push 0
push 0x6d
push ecx
call ebp
test eax, eax
jne 0x411942
jmp 0x411bdd
mov dword [0x428248], ebx
push 0x3f7
push 0x64
lea edx, [esp + 0x224]
push edx
push str.OpenLastFile
push 2
push str.SoftwareMicrocosmCopyMinder
push 0
mov dword [0x429194], 0
call fcn.0040a530
add esp, 0x1c
test eax, eax
je 0x411bdd
cmp byte [esp + 0x21c], 0x31
jne 0x4119b7
cmp dword [0x4291f4], 0
mov dword [0x429194], ebx
jne 0x4119b7
push 0x3f8
push pe_nt_image_headers32
push 0x428fc0
push str.LastOpened
push 2
push str.SoftwareMicrocosmCopyMinder
push 0
call fcn.0040a530
add esp, 0x1c
push 0x105
lea eax, [esp + 0x284]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x284]
push edx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov edi, eax
push edi
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
push esi
push edi
push 0
lea eax, [esp + 0x28c]
push eax
call sub.VERSION.dll_GetFileVersionInfoA
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x1c]
push edx
push 0x422adc
push esi
call sub.VERSION.dll_VerQueryValueA
mov eax, dword [esp + 0x18]
movzx ecx, word [eax + 8]
movzx edx, word [eax + 0xa]
push ecx
push edx
lea eax, [esp + 0x30]
push str._d_d
push eax
call fcn.0041246c
mov eax, dword [esp + 0x28]
movzx ecx, word [eax + 0xc]
movzx edx, word [eax + 0xe]
push ecx
movzx ecx, word [eax + 8]
push edx
movzx edx, word [eax + 0xa]
push ecx
push edx
lea eax, [esp + 0x3a8]
push str._d_d_d_d
push eax
call fcn.0041246c
add esp, 0x28
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
lea ecx, [esp + 0x28]
push ecx
call fcn.004132ca
lea edx, [esp + 0x38c]
push edx
mov dword [0x429210], eax
call fcn.004132ca
add esp, 8
push 0
push 0x40e440
push 0
mov dword [0x428fa4], eax
mov eax, dword [esp + 0x28]
push 0x65
push eax
call ebp
cmp dword [0x429194], ebx
jne 0x411b04
push 0x3f9
push 2
push 0x423124
push str.OpenLastFile
push ebx
push str.SoftwareMicrocosmCopyMinder
push 0
call fcn.0040a530
add esp, 0x1c
test eax, eax
je 0x411bdd
mov eax, 0x428fc0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x411ad1
push 0x3fa
sub eax, edx
inc eax
push eax
push 0x428fc0
push str.LastOpened
push ebx
push str.SoftwareMicrocosmCopyMinder
push 0
call fcn.0040a530
add esp, 0x1c
test eax, eax
jne 0x411b2d
jmp 0x411bdd
push 0x3fb
push 2
push 0x422f0c
push str.OpenLastFile
push ebx
push str.SoftwareMicrocosmCopyMinder
push 0
call fcn.0040a530
add esp, 0x1c
test eax, eax
je 0x411bdd
cmp dword [0x428248], 0
jne 0x411b3d
mov byte [0x429d70], 0
mov eax, 0x429d70
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x411b45
push 0x3fc
sub eax, edx
inc eax
push eax
push 0x429d70
push 0x4230ec
push ebx
push str.SoftwareMicrocosmCopyMinder
push 0
call fcn.0040a530
add esp, 0x1c
test eax, eax
je 0x411bdd
mov eax, 0x429220
lea edx, [eax + 1]
jmp 0x411b80
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x411b80
push 0x3ff
sub eax, edx
inc eax
push eax
push 0x429220
push str.password
push ebx
push str.SoftwareMicrocosmCopyMinder
push 0
call fcn.0040a530
add esp, 0x1c
test eax, eax
je 0x411bdd
mov ecx, dword [0x42919c]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
push ecx
call esi
mov edx, dword [0x427f10]
push edx
call esi
mov eax, dword [0x429b34]
push eax
call esi
mov ecx, dword [0x4281cc]
push ecx
call esi
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [esp + 0x57c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00411e16
add esp, 0x570
ret 0x10