Function at 0x44558e
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x4b5c90
call fcn.0049dfc4
sub esp, 0x100
push ebx
push esi
push edi
mov ebx, ecx
mov esi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
and dword [ebp - 4], 0
push str.type
call esi
lea ecx, [ebp - 0xe8]
mov dword [ebp - 0xdc], eax
call fcn.00401e1e
mov edi, vtable._zstring_class_ztraits_0__.0
mov dword [ebp - 0xe8], edi
lea eax, [ebp - 0xe8]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 1
call fcn.004493c0
push eax
lea ecx, [ebp - 0x58]
call fcn.0040235c
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 3
call fcn.004012b4
push 0x4f4120
lea ecx, [ebp - 0x58]
call fcn.00401327
test eax, eax
jne 0x4456e1
push str.path
call esi
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x8c], eax
call fcn.00401e1e
mov dword [ebp - 0x98], edi
lea eax, [ebp - 0x98]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 4
call fcn.004493c0
push eax
lea ecx, [ebp - 0x68]
call fcn.0040235c
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 6
call fcn.004012b4
push str.comparison
call esi
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xbc], eax
call fcn.00401e1e
mov dword [ebp - 0xc8], edi
lea eax, [ebp - 0xc8]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 7
call fcn.004493c0
push 0x4f4050
mov ecx, eax
call fcn.00401327
neg eax
sbb al, al
lea ecx, [ebp - 0xc8]
inc al
mov byte [ebp - 4], 6
mov byte [ebp - 0x18], al
call fcn.004012b4
push 0x1c
call fcn.0049e01f
pop ecx
mov dword [ebp - 0x10], eax
test eax, eax
mov byte [ebp - 4], 8
je 0x4456d3
push dword [ebp - 0x18]
lea ecx, [ebp - 0x68]
push ecx
mov ecx, eax
call fcn.00447417
mov esi, eax
jmp 0x4456d5
xor esi, esi
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x68]
jmp 0x446518
push 0x4f4110
lea ecx, [ebp - 0x58]
call fcn.00401327
test eax, eax
jne 0x445864
push str.path
call esi
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xbc], eax
call fcn.00401e1e
mov dword [ebp - 0xc8], edi
lea eax, [ebp - 0xc8]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 9
call fcn.004493c0
push eax
lea ecx, [ebp - 0x48]
call fcn.0040235c
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0xb
call fcn.004012b4
push str.filename
call esi
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x8c], eax
call fcn.00401e1e
mov dword [ebp - 0x98], edi
lea eax, [ebp - 0x98]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0xc
call fcn.004493c0
push eax
lea ecx, [ebp - 0xd8]
call fcn.0040235c
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xe
call fcn.004012b4
push str.returnValue
call esi
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x2c], eax
call fcn.00401e1e
mov dword [ebp - 0x38], edi
lea eax, [ebp - 0x38]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0xf
call fcn.004493c0
push eax
lea ecx, [ebp - 0xa8]
call fcn.0040235c
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x11
call fcn.004012b4
push str.comparison
call esi
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x7c], eax
call fcn.00401e1e
mov dword [ebp - 0x88], edi
lea eax, [ebp - 0x88]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x12
call fcn.004493c0
push eax
lea ecx, [ebp - 0x68]
call fcn.0040235c
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x14
call fcn.004012b4
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00447746
add esp, 0x10
lea ecx, [ebp - 0x68]
mov esi, eax
mov byte [ebp - 4], 0x11
call fcn.004012b4
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0xe
call fcn.004012b4
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0xb
call fcn.004012b4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x48]
jmp 0x446518
push 0x4f4100
lea ecx, [ebp - 0x58]
call fcn.00401327
test eax, eax
jne 0x445a4d
push str.subtype
call esi
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x7c], eax
call fcn.00401e1e
mov dword [ebp - 0x88], edi
lea eax, [ebp - 0x88]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x15
call fcn.004493c0
push eax
lea ecx, [ebp - 0xa8]
call fcn.0040235c
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x17
call fcn.004012b4
push str.comparison
call esi
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x2c], eax
call fcn.00401e1e
mov dword [ebp - 0x38], edi
lea eax, [ebp - 0x38]
push str.1248
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x18
call fcn.004493c0
mov ecx, eax
call fcn.004162e3
test al, al
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x17
setne byte [ebp - 0x11]
call fcn.004012b4
push 0x4f4030
lea ecx, [ebp - 0xa8]
call fcn.00401327
test eax, eax
jne 0x4459b9
push str.path
call esi
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x2c], eax
call fcn.00401e1e
mov dword [ebp - 0x38], edi
lea eax, [ebp - 0x38]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x19
call fcn.004493c0
push eax
lea ecx, [ebp - 0x48]
call fcn.0040235c
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x1b
call fcn.004012b4
push 0x2c
call fcn.0049e01f
mov esi, eax
pop ecx
mov dword [ebp - 0x10], esi
test esi, esi
je 0x44599c
and dword [esi + 4], 0
mov dword [esi], 0x4c09f4
mov al, byte [ebp - 0x11]
lea ecx, [esi + 0xc]
mov byte [ebp - 4], 0x1d
mov byte [esi + 8], al
call fcn.00401c3a
lea eax, [ebp - 0x48]
lea ecx, [esi + 0x1c]
push eax
mov byte [ebp - 4], 0x1e
call fcn.0040235c
mov dword [esi], 0x4c09ec
jmp 0x44599e
xor esi, esi
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x48]
call fcn.004012b4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa8]
jmp 0x446518
push str.filename
call esi
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x2c], eax
call fcn.00401e1e
mov dword [ebp - 0x38], edi
lea eax, [ebp - 0x38]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x1f
call fcn.004493c0
push eax
lea ecx, [ebp - 0x48]
call fcn.0040235c
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x21
call fcn.004012b4
push 0x2c
call fcn.0049e01f
mov esi, eax
pop ecx
mov dword [ebp - 0x10], esi
test esi, esi
je 0x445a3f
and dword [esi + 4], 0
mov dword [esi], 0x4c09f4
mov al, byte [ebp - 0x11]
add ebx, 0xcc
push ebx
lea ecx, [esi + 0xc]
mov byte [ebp - 4], 0x23
mov byte [esi + 8], al
call fcn.0040235c
lea eax, [ebp - 0x48]
lea ecx, [esi + 0x1c]
push eax
mov byte [ebp - 4], 0x24
call fcn.0040235c
mov dword [esi], 0x4c09ec
jmp 0x445a41
xor esi, esi
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x48]
jmp 0x4459a5
push 0x4f40e0
lea ecx, [ebp - 0x58]
call fcn.00401327
test eax, eax
jne 0x445cbb
push str.subtype
call esi
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x7c], eax
call fcn.00401e1e
mov dword [ebp - 0x88], edi
lea eax, [ebp - 0x88]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x25
call fcn.004493c0
push eax
lea ecx, [ebp - 0x68]
call fcn.0040235c
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x27
call fcn.004012b4
push str.returnValue
call esi
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x2c], eax
call fcn.00401e1e
mov dword [ebp - 0x38], edi
lea eax, [ebp - 0x38]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x28
call fcn.004493c0
push eax
lea ecx, [ebp - 0xa8]
call fcn.0040235c
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x2a
call fcn.004012b4
push str.comparison
call esi
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xbc], eax
call fcn.00401e1e
mov dword [ebp - 0xc8], edi
lea eax, [ebp - 0xc8]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x2b
call fcn.004493c0
push eax
lea ecx, [ebp - 0xd8]
call fcn.0040235c
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0x2d
call fcn.004012b4
push 0x4f4030
lea ecx, [ebp - 0x68]
call fcn.00401327
test eax, eax
jne 0x445bf7
push str.path
call esi
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x8c], eax
call fcn.00401e1e
mov dword [ebp - 0x98], edi
lea eax, [ebp - 0x98]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x2e
call fcn.004493c0
push eax
lea ecx, [ebp - 0x48]
call fcn.0040235c
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x30
call fcn.004012b4
push 0x3c
call fcn.0049e01f
pop ecx
mov dword [ebp - 0x10], eax
test eax, eax
mov byte [ebp - 4], 0x31
je 0x445bbf
lea ecx, [ebp - 0xd8]
push ecx
lea ecx, [ebp - 0xa8]
push ecx
lea ecx, [ebp - 0x48]
push ecx
mov ecx, eax
call fcn.004465a7
mov esi, eax
jmp 0x445bc1
xor esi, esi
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x48]
call fcn.004012b4
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x2a
call fcn.004012b4
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x27
call fcn.004012b4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x68]
jmp 0x446518
push str.filename
lea ecx, [ebp - 0x48]
call fcn.00401c4e
lea eax, [ebp - 0x48]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x32
call fcn.004493c0
push eax
lea ecx, [ebp - 0x78]
call fcn.0040235c
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x34
call fcn.004012b4
push str.productCode
lea ecx, [ebp - 0x98]
call fcn.00401c4e
lea eax, [ebp - 0x98]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x35
call fcn.004493c0
push eax
lea ecx, [ebp - 0xb8]
call fcn.0040235c
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x37
call fcn.004012b4
push 0x3c
call fcn.0049e01f
pop ecx
mov dword [ebp - 0x10], eax
test eax, eax
mov byte [ebp - 4], 0x38
je 0x445c9e
lea ecx, [ebp - 0xb8]
push ecx
lea ecx, [ebp - 0xd8]
push ecx
lea ecx, [ebp - 0xa8]
push ecx
lea ecx, [ebp - 0x78]
push ecx
mov ecx, eax
call fcn.00446636
mov esi, eax
jmp 0x445ca0
xor esi, esi
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x34
call fcn.004012b4
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x78]
jmp 0x445bc8
push 0x4f40f0
lea ecx, [ebp - 0x58]
call fcn.00401327
test eax, eax
jne 0x445f28
push str.subtype
lea ecx, [ebp - 0x78]
call fcn.00401c4e
lea eax, [ebp - 0x78]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x39
call fcn.004493c0
push eax
lea ecx, [ebp - 0xd8]
call fcn.0040235c
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x3b
call fcn.004012b4
push str.returnValue
lea ecx, [ebp - 0xb8]
call fcn.00401c4e
lea eax, [ebp - 0xb8]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x3c
call fcn.004493c0
push eax
lea ecx, [ebp - 0xa8]
call fcn.0040235c
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x3e
call fcn.004012b4
push str.comparison
lea ecx, [ebp - 0x48]
call fcn.00401c4e
lea eax, [ebp - 0x48]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x3f
call fcn.004493c0
push eax
lea ecx, [ebp - 0x68]
call fcn.0040235c
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x41
call fcn.004012b4
push 0x4f4020
lea ecx, [ebp - 0x68]
call fcn.00401327
mov ebx, eax
lea eax, [ebp - 0xa8]
neg ebx
sbb ebx, ebx
push eax
lea eax, [ebp - 0x88]
and ebx, 2
push eax
inc ebx
call fcn.00446eb3
mov esi, eax
lea edi, [ebp - 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x28]
lea edi, [ebp - 0xc8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop ecx
movsd dword es:[edi], dword [esi]
pop ecx
push 0x4f4030
lea ecx, [ebp - 0xd8]
movsd dword es:[edi], dword [esi]
call fcn.00401327
test eax, eax
jne 0x445e6b
push str.path
lea ecx, [ebp - 0x88]
call fcn.00401c4e
lea eax, [ebp - 0x88]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x42
call fcn.004493c0
push eax
lea ecx, [ebp - 0x38]
call fcn.0040235c
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x44
call fcn.004012b4
push 0x34
call fcn.0049e01f
pop ecx
mov dword [ebp - 0x10], eax
xor esi, esi
mov byte [ebp - 4], 0x45
cmp eax, esi
je 0x445e35
push ebx
lea ecx, [ebp - 0xc8]
push esi
push ecx
lea ecx, [ebp - 0x38]
push ecx
mov ecx, eax
call fcn.00446d2a
mov esi, eax
mov byte [ebp - 4], 0x41
lea ecx, [ebp - 0x38]
call fcn.004012b4
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x3e
call fcn.004012b4
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x3b
call fcn.004012b4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xd8]
jmp 0x446518
push str.filename
lea ecx, [ebp - 0x88]
call fcn.00401c4e
lea eax, [ebp - 0x88]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x46
call fcn.004493c0
push eax
lea ecx, [ebp - 0x28]
call fcn.0040235c
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x48
call fcn.004012b4
push str.productCode
lea ecx, [ebp - 0x38]
call fcn.00401c4e
lea eax, [ebp - 0x38]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x49
call fcn.004493c0
push eax
lea ecx, [ebp - 0x98]
call fcn.0040235c
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x4b
call fcn.004012b4
push 0x34
call fcn.0049e01f
pop ecx
mov dword [ebp - 0x10], eax
xor esi, esi
mov byte [ebp - 4], 0x4c
cmp eax, esi
je 0x445f0d
push ebx
lea ecx, [ebp - 0xc8]
push esi
push ecx
lea ecx, [ebp - 0x98]
push ecx
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.00446da9
mov esi, eax
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x48
call fcn.004012b4
mov byte [ebp - 4], 0x41
lea ecx, [ebp - 0x28]
jmp 0x445e3c
push 0x4f40d0
lea ecx, [ebp - 0x58]
call fcn.00401327
test eax, eax
jne 0x445fa2
push str.returnValue
lea ecx, [ebp - 0x28]
call fcn.00401c4e
lea eax, [ebp - 0x28]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x4d
call fcn.004493c0
push eax
lea ecx, [ebp - 0x78]
call fcn.0040235c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x4f
call fcn.004012b4
push 0x28
call fcn.0049e01f
pop ecx
mov dword [ebp - 0x10], eax
test eax, eax
mov byte [ebp - 4], 0x50
je 0x445f94
add ebx, 0xcc
lea ecx, [ebp - 0x78]
push ebx
push ecx
mov ecx, eax
call fcn.00448a0e
mov esi, eax
jmp 0x445f96
xor esi, esi
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x78]
jmp 0x446518
push 0x4f40c0
lea ecx, [ebp - 0x58]
call fcn.00401327
test eax, eax
jne 0x4460af
push str.path
lea ecx, [ebp - 0x28]
call fcn.00401c4e
lea eax, [ebp - 0x28]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x51
call fcn.004493c0
push eax
lea ecx, [ebp - 0x68]
call fcn.0040235c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x53
call fcn.004012b4
push str.returnValue
lea ecx, [ebp - 0x78]
call fcn.00401c4e
lea eax, [ebp - 0x78]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x54
call fcn.004493c0
push eax
lea ecx, [ebp - 0xa8]
call fcn.0040235c
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x56
call fcn.004012b4
push str.content
lea ecx, [ebp - 0xb8]
call fcn.00401c4e
lea eax, [ebp - 0xb8]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x57
call fcn.004493c0
push eax
lea ecx, [ebp - 0x48]
call fcn.0040235c
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x59
call fcn.004012b4
push 0x38
call fcn.0049e01f
pop ecx
mov dword [ebp - 0x10], eax
test eax, eax
mov byte [ebp - 4], 0x5a
je 0x446086
lea ecx, [ebp - 0x68]
add ebx, 0xcc
push ecx
lea ecx, [ebp - 0x48]
push ecx
push ebx
mov ecx, eax
call fcn.004485de
mov esi, eax
jmp 0x446088
xor esi, esi
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x56
call fcn.004012b4
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x53
call fcn.004012b4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x68]
jmp 0x446518
push 0x4f40a0
lea ecx, [ebp - 0x58]
call fcn.00401327
test eax, eax
jne 0x4461f5
push str.subtype
lea ecx, [ebp - 0x28]
call fcn.00401c4e
lea eax, [ebp - 0x28]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x5b
call fcn.004493c0
push 0x4f4010
mov ecx, eax
call fcn.00401327
neg eax
sbb al, al
lea ecx, [ebp - 0x28]
inc al
mov byte [ebp - 4], 3
mov byte [ebp - 0x18], al
call fcn.004012b4
push 0x4f1ed4
lea ecx, [ebp - 0x68]
call fcn.00401c4e
push str.comparison
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x5c
call fcn.00401c4e
lea eax, [ebp - 0x28]
push 0x4ea16c
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x5d
call fcn.004493c0
mov ecx, eax
call fcn.004162e3
lea ecx, [ebp - 0x28]
mov bl, al
mov byte [ebp - 4], 0x5c
call fcn.004012b4
test bl, bl
je 0x446180
push str.returnValue
lea ecx, [ebp - 0x28]
call fcn.00401c4e
lea eax, [ebp - 0x28]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x5e
call fcn.004493c0
push eax
lea ecx, [ebp - 0x68]
call fcn.00410f26
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x5c
call fcn.004012b4
push str.filename
lea ecx, [ebp - 0x28]
call fcn.00401c4e
lea eax, [ebp - 0x28]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x5f
call fcn.004493c0
push eax
lea ecx, [ebp - 0x78]
call fcn.0040235c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x61
call fcn.004012b4
push 0x2c
call fcn.0049e01f
pop ecx
mov dword [ebp - 0x10], eax
test eax, eax
mov byte [ebp - 4], 0x62
je 0x4461db
push dword [ebp - 0x18]
lea ecx, [ebp - 0x68]
push ecx
lea ecx, [ebp - 0x78]
push ecx
mov ecx, eax
call fcn.0044871d
mov esi, eax
jmp 0x4461dd
xor esi, esi
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x5c
call fcn.004012b4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x68]
jmp 0x446518
push 0x4f40b0
lea ecx, [ebp - 0x58]
call fcn.00401327
test eax, eax
jne 0x4462ff
push str.returnValue
lea ecx, [ebp - 0x28]
call fcn.00401c4e
lea eax, [ebp - 0x28]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x63
call fcn.004493c0
push eax
lea ecx, [ebp - 0x68]
call fcn.0040235c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x65
call fcn.004012b4
push str.path
lea ecx, [ebp - 0x78]
call fcn.00401c4e
lea eax, [ebp - 0x78]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x66
call fcn.004493c0
push eax
lea ecx, [ebp - 0x48]
call fcn.0040235c
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x68
call fcn.004012b4
push str.comparison
lea ecx, [ebp - 0xb8]
call fcn.00401c4e
lea eax, [ebp - 0xb8]
push str.1248
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x69
call fcn.004493c0
mov ecx, eax
call fcn.0041145a
neg eax
sbb al, al
lea ecx, [ebp - 0xb8]
inc al
mov byte [ebp - 4], 0x68
mov byte [ebp - 0x18], al
call fcn.004012b4
push 0x4c
call fcn.0049e01f
pop ecx
mov dword [ebp - 0x10], eax
test eax, eax
mov byte [ebp - 4], 0x6a
je 0x4462e5
push dword [ebp - 0x18]
lea ecx, [ebp - 0x68]
add ebx, 0xcc
push ecx
lea ecx, [ebp - 0x48]
push ecx
push ebx
mov ecx, eax
call fcn.00448c6f
mov esi, eax
jmp 0x4462e7
xor esi, esi
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x65
call fcn.004012b4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x68]
jmp 0x446518
push 0x4f4070
lea ecx, [ebp - 0x58]
call fcn.00401327
test eax, eax
jne 0x446335
push 8
call fcn.0049e01f
pop ecx
mov dword [ebp - 0x10], eax
test eax, eax
mov byte [ebp - 4], 0x6b
je 0x44632c
mov ecx, eax
call fcn.00448464
jmp 0x44632e
xor eax, eax
mov esi, eax
jmp 0x446558
push 0x4f4060
lea ecx, [ebp - 0x58]
call fcn.00401327
test eax, eax
jne 0x4463fe
push str.path
lea ecx, [ebp - 0x28]
call fcn.00401c4e
lea eax, [ebp - 0x28]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x6c
call fcn.004493c0
push eax
lea ecx, [ebp - 0x48]
call fcn.0040235c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x6e
call fcn.004012b4
push str.filename
lea ecx, [ebp - 0x78]
call fcn.00401c4e
lea eax, [ebp - 0x78]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x6f
call fcn.004493c0
push eax
lea ecx, [ebp - 0xb8]
call fcn.0040235c
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x71
call fcn.004012b4
push 0x38
call fcn.0049e01f
pop ecx
mov dword [ebp - 0x10], eax
test eax, eax
mov byte [ebp - 4], 0x72
je 0x4463e1
add ebx, 0xcc
lea ecx, [ebp - 0xb8]
push ebx
push ecx
lea ecx, [ebp - 0x48]
push ecx
mov ecx, eax
call fcn.0044848d
mov esi, eax
jmp 0x4463e3
xor esi, esi
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x6e
call fcn.004012b4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x48]
jmp 0x446518
push 0x4f4080
lea ecx, [ebp - 0x58]
call fcn.00401327
test eax, eax
jne 0x44651f
push str.productCode
lea ecx, [ebp - 0x28]
call fcn.00401c4e
lea eax, [ebp - 0x28]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x73
call fcn.004493c0
push eax
lea ecx, [ebp - 0xa8]
call fcn.0040235c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x75
call fcn.004012b4
push str.path
lea ecx, [ebp - 0x78]
call fcn.00401c4e
lea eax, [ebp - 0x78]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x76
call fcn.004493c0
push eax
lea ecx, [ebp - 0x48]
call fcn.0040235c
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x78
call fcn.004012b4
push str.returnValue
lea ecx, [ebp - 0xb8]
call fcn.00401c4e
lea eax, [ebp - 0xb8]
lea ecx, [ebp + 8]
push eax
mov byte [ebp - 4], 0x79
call fcn.004493c0
push eax
lea ecx, [ebp - 0x68]
call fcn.0040235c
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x7b
call fcn.004012b4
push 0x2c
call fcn.0049e01f
pop ecx
mov dword [ebp - 0x18], eax
test eax, eax
mov byte [ebp - 4], 0x7c
je 0x4464f4
lea ecx, [ebp - 0x68]
call fcn.00402f35
push 0xa
push dword [ebp - 0x64]
call fcn.004113c0
pop ecx
pop ecx
mov ecx, dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0xa8]
push eax
call fcn.00448f81
mov esi, eax
jmp 0x4464f6
xor esi, esi
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x78
call fcn.004012b4
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x75
call fcn.004012b4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa8]
call fcn.004012b4
jmp 0x446558
mov esi, dword [ebp - 0x4c]
push SysReAllocStringLen
lea ecx, [ebp - 0x10c]
call fcn.00401e2f
push esi
push str.Unknown_rule_type__S_encountered
push 8
push eax
mov byte [ebp - 4], 0x7d
call fcn.00401e6a
add esp, 0x10
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 3
call fcn.004012b4
xor esi, esi
and byte [ebp - 4], 0
lea ecx, [ebp - 0x58]
call fcn.004012b4
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00449468
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x10