Function at 0x10003a60
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
mov eax, dword [0x10098070]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x48], eax
jmp 0x10003a84
mov ecx, dword [ebp - 0x48]
add ecx, 0x3f
mov dword [ebp - 0x48], ecx
mov edx, dword [ebp + 8]
add edx, 0xccc
cmp dword [ebp - 0x48], edx
ja 0x1000457f
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x4520
ja 0x10003ce5
cmp dword [ebp - 0x2c], 0x4520
je 0x10003fce
cmp dword [ebp - 0x2c], 0x1805
ja 0x10003bdb
cmp dword [ebp - 0x2c], 0x1805
je 0x10004035
cmp dword [ebp - 0x2c], 0x158f
ja 0x10003b71
cmp dword [ebp - 0x2c], 0x158f
je 0x10003f81
cmp dword [ebp - 0x2c], 0xb5c
ja 0x10003b2a
cmp dword [ebp - 0x2c], 0xb5c
je 0x10004340
mov ecx, dword [ebp - 0x2c]
sub ecx, 0xa60
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 0xbd
ja case.0x10003ec3.1
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x100045a4]
jmp dword [eax*4 + 0x10004590]
cmp dword [ebp - 0x2c], 0x1511
ja 0x10003b5f
cmp dword [ebp - 0x2c], 0x1511
je 0x10003f76
cmp dword [ebp - 0x2c], 0xb9b
je 0x100044ad
cmp dword [ebp - 0x2c], 0x14d2
je 0x10004184
jmp case.0x10003ec3.1
cmp dword [ebp - 0x2c], 0x1550
je 0x1000407f
jmp case.0x10003ec3.1
cmp dword [ebp - 0x2c], 0x16ca
ja 0x10003bb1
cmp dword [ebp - 0x2c], 0x16ca
je 0x10004285
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x15ce
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 0xbd
ja case.0x10003ec3.1
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x10004678]
jmp dword [eax*4 + 0x10004664]
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x1709
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 0xbd
ja case.0x10003ec3.1
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x1000474c]
jmp dword [eax*4 + 0x10004738]
cmp dword [ebp - 0x2c], 0x1a7b
ja 0x10003c5b
cmp dword [ebp - 0x2c], 0x1a7b
je 0x1000456d
cmp dword [ebp - 0x2c], 0x1940
ja 0x10003c31
cmp dword [ebp - 0x2c], 0x1940
je 0x1000445c
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x1844
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 0xbd
ja case.0x10003ec3.1
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x10004820]
jmp dword [eax*4 + 0x1000480c]
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x197f
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 0xbd
ja case.0x10003ec3.1
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x100048f4]
jmp dword [eax*4 + 0x100048e0]
cmp dword [ebp - 0x2c], 0x43e5
ja 0x10003cbb
cmp dword [ebp - 0x2c], 0x43e5
je 0x10004525
cmp dword [ebp - 0x2c], 0x4367
ja 0x10003ca9
cmp dword [ebp - 0x2c], 0x4367
je 0x10003f28
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], ecx
sub dword [ebp - 0x3c], 0x1aba
je 0x1000446d
sub dword [ebp - 0x3c], 0x3f
je 0x10003fa7
jmp case.0x10003ec3.1
cmp dword [ebp - 0x2c], 0x43a6
je 0x100042fb
jmp case.0x10003ec3.1
mov edx, dword [ebp - 0x2c]
sub edx, 0x4424
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0xbd
ja case.0x10003ec3.1
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 0x100049c8]
jmp dword [ecx*4 + 0x100049b4]
cmp dword [ebp - 0x2c], 0x5158
ja 0x10003e0a
cmp dword [ebp - 0x2c], 0x5158
je 0x10003ef6
cmp dword [ebp - 0x2c], 0x4ee2
ja 0x10003da0
cmp dword [ebp - 0x2c], 0x4ee2
je 0x100042d3
cmp dword [ebp - 0x2c], 0x4da7
ja 0x10003d76
cmp dword [ebp - 0x2c], 0x4da7
je 0x10003ff1
cmp dword [ebp - 0x2c], 0x4d29
ja 0x10003d64
cmp dword [ebp - 0x2c], 0x4d29
je 0x1000402a
cmp dword [ebp - 0x2c], 0x455f
je 0x10003f66
cmp dword [ebp - 0x2c], 0x4cea
je 0x1000447e
jmp case.0x10003ec3.1
cmp dword [ebp - 0x2c], 0x4d68
je 0x100044bc
jmp case.0x10003ec3.1
mov edx, dword [ebp - 0x2c]
sub edx, 0x4de6
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0xbd
ja case.0x10003ec3.1
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 0x10004a9c]
jmp dword [ecx*4 + 0x10004a88]
cmp dword [ebp - 0x2c], 0x501d
ja 0x10003de0
cmp dword [ebp - 0x2c], 0x501d
je 0x1000401a
mov edx, dword [ebp - 0x2c]
sub edx, 0x4f21
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0xbd
ja case.0x10003ec3.1
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 0x10004b70]
jmp dword [ecx*4 + 0x10004b5c]
mov edx, dword [ebp - 0x2c]
sub edx, 0x505c
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0xbd
ja case.0x10003ec3.1
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 0x10004c44]
jmp dword [ecx*4 + 0x10004c30]
cmp dword [ebp - 0x2c], 0x53ce
ja 0x10003e8a
cmp dword [ebp - 0x2c], 0x53ce
je 0x10003fad
cmp dword [ebp - 0x2c], 0x5293
ja 0x10003e60
cmp dword [ebp - 0x2c], 0x5293
je 0x10004560
mov edx, dword [ebp - 0x2c]
sub edx, 0x5197
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0xbd
ja case.0x10003ec3.1
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 0x10004d18]
jmp dword [ecx*4 + 0x10004d04]
mov edx, dword [ebp - 0x2c]
sub edx, 0x52d2
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0xbd
ja case.0x10003ec3.1
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 0x10004dec]
jmp dword [ecx*4 + 0x10004dd8]
cmp dword [ebp - 0x2c], 0x5509
ja 0x10003eca
cmp dword [ebp - 0x2c], 0x5509
je 0x1000432c
mov edx, dword [ebp - 0x2c]
sub edx, 0x540d
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0xbd
ja case.0x10003ec3.1
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 0x10004ec0]
jmp dword [ecx*4 + 0x10004eac]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], edx
sub dword [ebp - 0x34], 0x5548
je 0x1000421a
sub dword [ebp - 0x34], 0x3f
je 0x100040a8
sub dword [ebp - 0x34], 0x3f
je 0x1000451f
jmp case.0x10003ec3.1
push dword [0x10098a38]
lea ecx, [ebp - 0x34]
call fcn.10002540
test al, al
jmp case.0x10003ec3.1
cmp edi, dword [esi + 0x60]
jmp case.0x10003ec3.1
mov eax, dword [ebx]
xor ecx, ecx
mov word [eax], cx
mov eax, edi
and dword [ebp - 0x38], ecx
cmp dword [edi + 0x14], 8
jmp case.0x10003ec3.1
push str.shut
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov cx, word [0x1008ddb8]
mov word [ebp - 0x24], cx
jmp case.0x10003ec3.1
cmp byte [edi + 0x8d], 0
jne case.0x10003cde.126
mov eax, esi
jmp case.0x10003ec3.1
je case.0x10003c54.126
jmp case.0x10003ec3.1
push 2
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
push eax
call dword [ebp - 0x5c]
jmp case.0x10003ec3.1
lea edx, [esp + 0x10]
mov eax, ebx
jmp case.0x10003ec3.1
lea eax, [esp + 0x24]
mov dl, 1
jmp case.0x10003ec3.1
push esi
call fcn.1004df20
jmp case.0x10003ec3.1
call fcn.100358a0
push ebx
lea eax, [ebp - 0x1c]
push eax
push esi
jmp case.0x10003ec3.1
ret
call fcn.1003aa00
jmp case.0x10003ec3.1
mov dword [ebp - 8], edi
push dword [0x10098e00]
mov word [ebp - 0x1c], ax
call fcn.1004ebf0
jmp case.0x10003ec3.1
push 0x5bd5
lea ecx, [ebp - 0x1c]
push ecx
lea edx, [ebp - 0x28]
push edx
call fcn.10005f70
add esp, 0xc
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x5c], eax
jmp case.0x10003ec3.1
push dword [0x100989cc]
mov ecx, esi
call fcn.1001b810
and dword [ebx + 0x10], 0
mov eax, ebx
cmp dword [ebx + 0x14], 8
jmp case.0x10003ec3.1
call fcn.10052e40
lea ecx, [ebp - 0x34]
jmp case.0x10003ec3.1
add esp, 0xc
lea ecx, [ebp - 0x1c]
call fcn.100353b0
jmp case.0x10003ec3.1
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], esi
jmp case.0x10003ec3.1
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], eax
movsx eax, word [esp + 0x18]
mov dword [esp + 0x1c], eax
movsx eax, word [esp + 0x1a]
jmp case.0x10003ec3.1
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x24]
lea edx, [esp + 0x1c]
mov eax, ebx
call fcn.1002e490
push dword [esp + 0x28]
push dword [esp + 0x28]
lea eax, [esi + 0x64]
push eax
jmp case.0x10003ec3.1
mov eax, esi
call fcn.10048980
jmp case.0x10003ec3.1
mov dh, 0xee
or al, 0xe5
cli
call fcn.10038c70
jmp case.0x10003ec3.1
call fcn.10034f90
jmp case.0x10003ec3.1
mov word [ebp - 0x1c], ax
jmp case.0x10003ec3.1
test esi, esi
jmp case.0x10003ec3.1
call fcn.10032c20
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10042fa0
jmp case.0x10003ec3.1
push 0
push 0xb73
call fcn.1002bd70
add esp, 8
mov dword [ebp - 0x7c], eax
jmp case.0x10003ec3.1
call fcn.1001d2a0
add esp, 0xc
lea ecx, [ebp - 0x1c]
jmp case.0x10003ec3.1
jne 0x10003f76
push dword [0x100989ac]
mov ecx, edi
jmp case.0x10003ec3.1
mov cx, word [0x1008ddd0]
mov word [ebp - 0xa], cx
xor edx, edx
mov word [ebp - 8], dx
jmp case.0x10003ec3.1
and dword [ebp - 0x24], 0
xor eax, eax
and dword [ebp - 0xc], eax
push 7
pop ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 8], ecx
lea ecx, [ebp - 0x1c]
push dword [0x10098d6c]
mov word [ebp - 0x34], ax
jmp case.0x10003ec3.1
je case.0x10003dd9.63
movzx ebx, byte [esi + 0x58]
test bl, bl
je case.0x10003ec3.189
jmp case.0x10003ec3.1
mov eax, dword [esi + 0x80]
mov dword [esp], eax
jmp 0x10004285
jne case.0x10003e59.189
mov byte [esi + 0x58], bl
mov dword [esi + 0x60], edi
lea eax, [esp + 4]
push eax
call fcn.100286b0
jmp case.0x10003ec3.1
push ebx
push esi
push edi
push ebp
add esp, 0xffffffd4
mov ebp, ecx
mov ebx, edx
mov esi, eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], eax
movsx eax, word [esp + 0xc]
mov dword [esp + 0x10], eax
movsx eax, word [esp + 0xe]
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x24]
jmp case.0x10003ec3.1
xor eax, eax
mov word [ebp - 0xa], ax
jmp case.0x10003ec3.1
mov dword [ebp - 0x3c], eax
test eax, eax
jmp case.0x10003ec3.1
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x10003f66
and dword [ebp - 0xc], 0
lea ecx, [ebp - 0x1c]
xor eax, eax
mov dword [ebp - 8], 7
push dword [0x10098d7c]
jmp case.0x10003ec3.1
je case.0x10003c2a.126
mov al, 1
jmp case.0x10003ec3.1
xor ecx, ecx
mov word [ebp - 0x12], cx
mov dx, word [0x1008de3a]
mov word [ebp - 0x12], dx
xor eax, eax
mov word [ebp - 0x10], ax
jmp case.0x10003ec3.1
call fcn.1004fe20
lea ecx, [ebp - 0x34]
jmp case.0x10003ec3.1
jb case.0x10003b23.126
jmp case.0x10003ec3.1
call fcn.1002bb20
cmp eax, 1
sbb eax, eax
neg eax
test al, al
jmp case.0x10003ec3.1
cmp dword [edi + 0x14], 8
mov esi, eax
pop ecx
jb case.0x10003c2a.63
mov edi, dword [edi]
push esi
push dword [ebp - 0x3c]
push dword [ebp - 0x38]
push edi
jmp case.0x10003ec3.1
call fcn.10004f80
jmp case.0x10003ec3.1
mov ecx, 0x1008de90
mov edx, dword [ecx]
mov dword [ebp - 0x10], edx
mov ax, word [ecx + 4]
mov word [ebp - 0xc], ax
jmp case.0x10003ec3.1
jmp case.0x10003c54.126
call fcn.10031820
jmp case.0x10003ec3.1
lea edx, [esp + 4]
mov eax, esi
call fcn.100020a0
jmp case.0x10003d99.126
call fcn.10039df0
and dword [ebp - 0xc], 0
lea ecx, [ebp - 0x1c]
xor eax, eax
mov dword [ebp - 8], edi
push dword [0x10098f50]
mov word [ebp - 0x1c], ax
jmp case.0x10003ec3.1
pop ecx
lea eax, [ebp - 0x34]
push eax
call fcn.1002bd70
jmp case.0x10003ec3.1
je case.0x10003dd9.63
push eax
call fcn.10043f50
jmp case.0x10003ec3.1
mov word [ebp - 0x1c], ax
call fcn.100027a0
mov edi, dword [ebp - 0x40]
lea eax, [ebp - 0x1c]
push edi
push eax
push esi
jmp case.0x10003ec3.1
push 4
push 0x1008deb8
lea ecx, [ebp - 0x23]
push ecx
call fcn.10069cf0
add esp, 0xc
xor edx, edx
mov word [ebp - 0x1c], dx
push 2
push 0x1008ded8
lea eax, [ebp - 0x1c]
push eax
call fcn.1006db47
add esp, 0xc
jmp case.0x10003ec3.1
pop ecx
mov ecx, dword [ebp - 0x48]
push eax
jmp case.0x10003ec3.1
jmp case.0x10003d99.0
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0x60], ecx
push 8
mov edx, dword [ebp - 0x60]
push edx
call fcn.10068eb8
add esp, 8
cmp dword [ebp - 0x44], 0
jne 0x1000435e
mov byte [ebp - 0x2d], 0
movzx eax, byte [ebp - 0x2d]
test eax, eax
je 0x100043f2
mov dword [ebp - 0x4c], 0x536c
jmp 0x1000437c
mov ecx, dword [ebp - 0x4c]
add ecx, 0x61
mov dword [ebp - 0x4c], ecx
cmp dword [ebp - 0x4c], 0x53cd
ja 0x100043f2
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x40], eax
sub dword [ebp - 0x40], 0x536c
je 0x100043a2
sub dword [ebp - 0x40], 0x61
je 0x100043bd
jmp 0x100043f0
push 2
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp - 0x44]
push edx
call dword [sym.imp.ADVAPI32.dll_InitializeAcl]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x54], eax
jmp 0x100043f0
cmp dword [ebp - 0x54], 0
jne 0x100043d1
mov ecx, dword [ebp - 0x44]
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov byte [ebp - 0x2d], 0
movzx edx, byte [ebp - 0x2d]
test edx, edx
je 0x100043f0
mov eax, dword [ebp - 0x44]
push eax
call dword [sym.imp.ADVAPI32.dll_IsValidAcl]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x44]
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x10004373
jmp case.0x10003ec3.1
mov edi, eax
test edi, edi
je case.0x10003cde.63
jmp case.0x10003ec3.1
push dword [ebp - 0x44]
lea eax, [ebp - 0x1c]
push eax
push esi
jmp case.0x10003ec3.1
call fcn.1003da80
jmp case.0x10003ec3.1
call fcn.10006540
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x1c]
push eax
push esi
call fcn.1000d0d0
jmp case.0x10003ec3.1
mov byte [ebp - 0x35], 1
mov dl, byte [ebp - 0x35]
mov byte [ebp - 0x2d], dl
jmp case.0x10003ec3.1
jb 0x10004340
mov eax, dword [edi]
lea ecx, [ebp - 0x38]
push ecx
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
jmp case.0x10003ec3.1
mov edx, 0xb041
mov eax, edi
call fcn.10007df0
jmp case.0x10003ec3.1
call fcn.100020a0
add esp, 0x2c
pop ebp
pop edi
pop esi
pop ebx
jmp case.0x10003ec3.1
sub esp, 0x48
mov eax, dword [str.PHILADANCO]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
push ebx
mov ebx, dword [ebp + 0x14]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x48], ecx
mov ecx, eax
push dword [0x10098994]
jmp case.0x10003ec3.1
mov dword [0x1009a0d8], 0
jmp case.0x10003ec3.1
call fcn.10007d20
jmp case.0x10003ec3.1
mov dword [ebp - 0x50], 0x14
mov eax, dword [ebp - 0x50]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x44], eax
jmp case.0x10003ec3.1
test bl, bl
je case.0x10003baa.126
cmp dword [esp], 0
jmp case.0x10003ec3.1
mov dword [ebp - 0x6c], 0
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x70], 0
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x50], edx
mov eax, dword [0x1009a0d8]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x78], edx
jmp case.0x10003ec3.1
mov esp, ebp
pop ebp
ret
mov ax, word [0x1008defe]
mov word [ebp - 0x18], ax
xor ecx, ecx
mov word [ebp - 0x16], cx
mov edx, dword [0x1008dfba]
mov dword [ebp - 0x16], edx
jmp case.0x10003ec3.1
call fcn.1004eb70
and dword [ebp - 0xc], 0
lea ecx, [ebp - 0x1c]
push 7
pop edi
xor eax, eax
jmp case.0x10003ec3.1
add esp, 0xc
lea ecx, [ebp - 0x1c]
call fcn.10048e30
jmp case.0x10003ec3.1
call fcn.100286b0
add esp, 0xc
lea ecx, [ebp - 0x1c]
jmp case.0x10003ec3.1
mov byte [esi + 0x58], bl
mov dword [esi + 0x60], edi
xor ecx, ecx
mov edx, dword [esp]
mov eax, esi
jmp 0x10003a7b
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100685c5
mov esp, ebp
pop ebp
ret