Function at 0x402350
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x238
mov eax, dword [ebp + 8]
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x224], 0x1c07
je 0x4023ea
cmp dword [ebp - 0x224], 0x71f7
je 0x40237f
jmp 0x402407
mov dword [ebp + 8], 0x7d2c
lea ecx, [ebp - 0x1d8]
push ecx
push 0x74
push 0x5e
mov edx, dword [ebp - 0x1d8]
push edx
call sub.VERSION.dll_GetFileVersionInfoA
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x228], eax
cmp dword [ebp - 0x228], 0x15fe
je 0x4023ba
jmp 0x4023cb
mov ecx, dword [ebp + 8]
call fcn.004d42f0
mov dword [ebp + 8], 0x3bef
jmp 0x4023da
push 0x7e
mov edx, 0x57
mov ecx, dword [ebp + 8]
call fcn.00403500
mov dword [ebp + 8], 0x7582
mov dword [ebp + 8], 0x3b7
jmp 0x402407
lea ecx, [ebp - 0xb4]
push ecx
call dword [sym.imp.COMDLG32.dll_ChooseFontA]
mov dword [ebp - 0x214], eax
push 0xc3
call fcn.004d3a60
mov edx, 0xe5d
mov word [ebp - 0x138], dx
lea eax, [ebp - 0x138]
mov dword [ebp - 0x1d0], eax
cmp dword [ebp + 8], 0x140c
jne 0x40249b
mov ecx, dword [ebp - 0x1d0]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x138]
add edx, eax
mov ecx, dword [ebp - 0x1d0]
mov word [ecx], dx
mov edx, dword [ebp - 0x1d0]
movzx eax, word [edx]
sub eax, 0x531
mov word [ebp - 0x138], ax
lea ecx, [ebp - 0x78]
push ecx
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameA]
mov dword [ebp - 0x210], eax
movzx edx, word [ebp - 0x138]
and edx, 0xec0
mov eax, dword [ebp - 0x1d0]
mov word [eax], dx
mov dword [ebp + 8], 0x3cd8
mov ecx, dword [ebp - 0x1d0]
movzx edx, word [ecx]
or edx, 0x84f
mov word [ebp - 0x138], dx
mov eax, dword [ebp - 0x1d0]
movzx ecx, word [eax]
mov dword [ebp - 0x22c], ecx
cmp dword [ebp - 0x22c], 0x1be
je 0x40285f
cmp dword [ebp - 0x22c], 0xe5d
je 0x4024cb
jmp 0x4028c2
cmp dword [ebp + 8], 0xfee
jl 0x4024f1
mov ecx, dword [ebp + 8]
call fcn.004d42f0
mov edx, dword [ebp - 0x1d0]
movzx eax, word [edx]
sub eax, 0x728
mov word [ebp - 0x138], ax
mov dword [ebp - 0x168], 0xbce2
mov ecx, dword [ebp - 0x1d0]
movzx edx, word [ecx]
add edx, 0xc4d
movzx eax, word [ebp - 0x138]
cmp edx, eax
jg 0x402553
mov dword [ebp + 8], 0x525c
mov ecx, dword [ebp + 8]
call fcn.004d42f0
mov ecx, dword [ebp - 0x1d0]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x138]
xor edx, eax
mov ecx, dword [ebp - 0x1d0]
mov word [ecx], dx
mov edx, dword [ebp - 0x21c]
shr edx, 0xc
mov dword [ebp - 0x168], edx
jmp 0x40281d
mov al, byte [0x4dd248]
mov byte [ebp - 0x161], al
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x230], edx
cmp dword [ebp - 0x230], 0
je 0x4025a2
cmp dword [ebp - 0x230], 0x319
je 0x40258a
jmp 0x402613
lea eax, [ebp - 0x20c]
push eax
mov ecx, dword [ebp - 4]
push ecx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0x20c], eax
jmp 0x402613
lea edx, [ebp - 0x161]
mov dword [ebp - 0x10], edx
lea eax, [ebp - 0x168]
mov dword [ebp - 0x160], eax
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x21c]
and edx, dword [ecx]
mov eax, dword [ebp - 0x168]
sub eax, dword [ebp - 0x20c]
cmp edx, eax
jae 0x40260a
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x220], ecx
mov dl, byte [ebp - 0x161]
mov byte [ebp - 0x11], dl
mov ax, word [ebp - 0x138]
mov word [ebp - 0x128], ax
lea ecx, [ebp + 8]
mov dword [ebp - 0x204], ecx
lea edx, [ebp - 0x168]
mov dword [ebp - 0xc0], edx
lea eax, [ebp - 0x18]
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x1d0]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x128]
add edx, eax
movzx ecx, word [ebp - 0x138]
cmp edx, ecx
jl 0x4026d6
lea edx, [ebp - 0x18]
mov dword [ebp - 0x1cc], edx
lea eax, [ebp - 0x161]
mov dword [ebp - 0x208], eax
mov cx, word [ebp - 0x128]
mov word [ebp - 8], cx
mov edx, dword [ebp - 0x10]
mov al, byte [edx]
mov byte [ebp - 0x234], al
cmp byte [ebp - 0x234], 0x87
je 0x40266a
jmp 0x4026c3
mov ecx, 0x259
mov word [ebp - 0x134], cx
mov edx, dword [ebp - 0x160]
mov eax, dword [ebp - 0xc0]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x168], ecx
mov edx, dword [ebp - 0x1cc]
mov eax, dword [edx]
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x1d0]
mov dx, word [ecx]
mov word [ebp - 0xc], dx
mov eax, dword [ebp - 0x208]
mov cl, byte [eax]
mov byte [ebp - 0xb5], cl
lea edx, [ebp - 0x20c]
mov dword [ebp - 0xc4], edx
jmp 0x4026d6
mov eax, dword [ebp - 0x124]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x124]
mov dword [edx], ecx
mov eax, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x220]
and ecx, dword [eax]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0x124]
mov ecx, dword [ebp - 0x18]
add ecx, dword [eax]
mov edx, dword [ebp - 0x204]
mov eax, dword [ebp - 0x16c]
sub eax, dword [edx]
cmp ecx, eax
jne 0x4027fb
movzx ecx, byte [ebp - 0xb5]
movzx edx, byte [ebp - 0x11]
sub ecx, edx
mov byte [ebp - 0x161], cl
lea eax, [ebp - 0x220]
mov dword [ebp - 0x1d4], eax
movzx edx, word [ebp - 0xc]
movzx ecx, word [ebp - 8]
shl edx, cl
mov eax, dword [ebp - 0x1d0]
movzx ecx, word [eax]
movzx eax, word [ebp - 0x128]
or ecx, eax
cmp edx, ecx
jle 0x4027fb
mov ecx, dword [ebp - 0x16c]
xor ecx, dword [ebp - 0x18]
mov dword [ebp - 0x220], ecx
mov edx, dword [ebp - 0x1cc]
mov ecx, dword [edx]
call fcn.004d42f0
mov eax, dword [ebp - 0xc4]
mov edx, dword [ebp - 0x21c]
mov ecx, dword [eax]
shr edx, cl
mov eax, dword [ebp - 0xc0]
mov dword [eax], edx
mov ecx, dword [ebp - 0x10]
mov dl, byte [ecx]
mov byte [ebp - 0x238], dl
cmp byte [ebp - 0x238], 0x1c
je 0x4027aa
cmp byte [ebp - 0x238], 0xe8
je 0x4027d3
jmp 0x4027fb
lea eax, [ebp - 0x1c8]
push eax
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameA]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ebp - 0x16c]
and edx, dword [ecx]
mov dword [ebp - 0x220], edx
jmp 0x4027fb
mov eax, dword [ebp - 0x16c]
add eax, dword [ebp - 0x220]
mov ecx, dword [ebp - 0x1cc]
mov dword [ecx], eax
movsx edx, word [ebp - 0x134]
sub edx, 0x6c9
mov word [ebp - 0x134], dx
mov eax, dword [ebp - 0x20c]
push eax
call fcn.004d3a60
movzx ecx, word [ebp - 0x138]
mov edx, dword [ebp - 0x1d0]
movzx eax, word [edx]
add ecx, eax
mov word [ebp - 0xc], cx
mov ecx, dword [ebp - 0x168]
push ecx
call fcn.004d3a60
mov edx, dword [ebp - 0x1d0]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x138]
shl eax, cl
mov ecx, dword [ebp - 0x1d0]
mov word [ecx], ax
lea edx, [ebp - 0x218]
push edx
mov eax, dword [ebp - 0x218]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0x21c], eax
jmp 0x4028c2
mov ecx, dword [ebp - 0x1d0]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x138]
and edx, eax
mov ecx, dword [ebp - 0x1d0]
mov word [ecx], dx
mov ecx, dword [ebp + 8]
call fcn.004d42f0
mov edx, dword [ebp - 0x1d0]
movzx eax, word [edx]
add eax, 0xa14
mov word [ebp - 0x138], ax
lea ecx, [ebp - 0x120]
push ecx
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameA]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1d0]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x138]
sub eax, ecx
mov edx, dword [ebp - 0x1d0]
mov word [edx], ax
lea eax, [ebp - 0x200]
push eax
call dword [sym.imp.COMDLG32.dll_FindTextA]
mov dword [ebp - 0x130], eax
mov ecx, dword [ebp - 0x1d0]
movzx edx, word [ecx]
shl edx, 0xf7
movzx eax, word [ebp - 0x138]
cmp edx, eax
jle 0x40291b
lea ecx, [ebp - 0x15c]
push ecx
call dword [sym.imp.COMDLG32.dll_ChooseColorA]
mov dword [ebp - 0x210], eax
mov dword [ebp + 8], 0x6cbd
mov edx, dword [ebp - 0x1d0]
movzx eax, word [edx]
sub eax, 0x2e9
mov word [ebp - 0x138], ax
mov ecx, dword [ebp - 0x1d0]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x138]
xor edx, eax
mov ecx, dword [ebp - 0x1d0]
mov word [ecx], dx
mov edx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x1d0]
mov cx, word [eax]
call fcn.004029a0
mov ecx, dword [ebp - 0x1d0]
movzx edx, word [ecx]
sar edx, 6
mov word [ebp - 0x138], dx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00402d00
add esp, 0x14
movzx edx, word [ebp - 0x138]
add edx, 0xcef
mov eax, dword [ebp - 0x1d0]
mov word [eax], dx
mov eax, 0x6b
mov esp, ebp
pop ebp
ret