Function at 0x40a3b6
Capabilities:
Parse pe header

Disassembly:
push 0xc8
mov eax, 0x4b2576
call fcn.00492ffe
mov edi, ecx
mov dword [ebp - 0x84], edi
mov esi, dword [ebp + 0x58]
mov edx, dword [ebp + 0x5c]
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], edx
xor ecx, ecx
xor ebx, ebx
inc ecx
mov dword [ebp - 4], ebx
cmp byte [edi + 0x40], bl
jne 0x40ab80
mov eax, dword [edi + 0x3c]
test eax, eax
jne 0x40a3f6
mov eax, dword [esi]
mov dword [edi + 0x3c], eax
cmp eax, 0x2014b50
je 0x40aa8c
cmp eax, 0x4034b50
je 0x40a516
cmp eax, 0x5054b50
je 0x40a42f
cmp eax, 0x6054b50
je 0x40a451
cmp eax, 0x6064b50
je 0x40a42f
cmp eax, 0x7064b50
je 0x40a42f
cmp eax, 0x8074b50
je 0x40a449
mov dword [edi + 0x3c], ebx
xor ecx, ecx
inc ecx
mov ebx, ecx
lea ecx, [ebp + 8]
call fcn.0044e445
mov eax, ebx
call fcn.00492fbc
ret 0x60
add dword [edx], 0x10
jmp 0x40ac7c
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x24]
sbb ecx, dword [edi + 0x2c]
cmp dword [edi + 0x1c], ecx
jl 0x40a4fc
jg 0x40a471
cmp dword [edi + 0x18], eax
jbe 0x40a4fc
add eax, 0x2e
adc ecx, ebx
cmp dword [edi + 0x1c], ecx
jl 0x40a4ac
jg 0x40a482
cmp dword [edi + 0x18], eax
jbe 0x40a4ac
push 0x18
lea eax, [ebp - 0x2c]
push ebx
push eax
call fcn.00495f40
push 0x18
lea eax, [ebp - 0x2c]
push esi
push eax
call fcn.004960a0
movzx ecx, word [ebp - 0x16]
add esp, 0x18
mov eax, dword [edi + 0x20]
add ecx, 0x16
jmp 0x40aa82
mov eax, dword [edi + 0xc]
lea ecx, [ebp - 0xd4]
push dword [eax + 0xc]
push dword [eax + 8]
call fcn.0044e3e0
mov byte [ebp - 4], 4
push dword [edi + 0x24]
lea ecx, [ebp - 0xd4]
push dword [edi + 0x20]
call fcn.0044e45d
push 0x18
lea eax, [ebp - 0x2c]
push ebx
push eax
call fcn.00495f40
push 0x18
lea eax, [ebp - 0x2c]
push esi
push eax
call fcn.004960a0
movzx ecx, word [ebp - 0x16]
add esp, 0x18
add ecx, 0x16
jmp 0x40ab49
mov eax, dword [edi + 0xc]
lea ecx, [ebp - 0xd4]
push dword [eax + 0xc]
push dword [eax + 8]
call fcn.0044e3e0
mov byte [ebp - 4], 5
jmp 0x40a4c4
mov esi, dword [edi + 0x2c]
mov edx, dword [edi + 0x28]
cmp esi, dword [edi + 0x24]
jg 0x40a435
jl 0x40a530
cmp edx, dword [edi + 0x20]
ja 0x40a435
mov ecx, dword [edi + 0x18]
sub ecx, dword [edi + 0x20]
mov eax, dword [edi + 0x1c]
sbb eax, dword [edi + 0x24]
add ecx, edx
adc eax, esi
cmp eax, ebx
jg 0x40a585
jl 0x40a54b
cmp ecx, 0x5a
ja 0x40a585
mov eax, dword [edi + 0xc]
lea ecx, [ebp - 0xd4]
push dword [eax + 0xc]
push dword [eax + 8]
call fcn.0044e3e0
push dword [edi + 0x24]
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 1
push dword [edi + 0x20]
call fcn.0044e45d
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0x74], eax
mov byte [ebp - 4], bl
call fcn.0044e445
mov esi, dword [ebp - 0x74]
mov eax, dword [edi + 0x48]
add esi, 0x1e
or eax, dword [edi + 0x4c]
jne 0x40aa2e
push 0x13
push str._Content_Types_.xml
push esi
call fcn.0049450a
add esp, 0xc
test eax, eax
jne 0x40a8ad
mov esi, dword [edi + 0x28]
sub esi, dword [edi + 0x20]
mov ecx, dword [edi + 0x2c]
sbb ecx, dword [edi + 0x24]
add esi, dword [edi + 0x18]
mov byte [ebp - 0x61], bl
adc ecx, dword [edi + 0x1c]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], 0xfffffffe
cmp ecx, ebx
ja 0x40a603
cmp esi, 0x10
ja 0x40a603
mov byte [ebp - 0x61], bl
cmp ecx, ebx
ja 0x40a6c0
cmp esi, 0xe
ja 0x40a6c0
mov dl, bl
cmp ecx, ebx
ja 0x40a82a
cmp esi, 5
jbe 0x40aa2e
jmp 0x40a82a
mov edx, esi
mov eax, ecx
add edx, 0xffffffee
adc eax, 0xffffffff
mov dword [ebp - 0x78], eax
cmp eax, ebx
jb 0x40a6c0
ja 0x40a622
cmp edx, ebx
jbe 0x40a6c0
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x68]
add eax, 2
sub ecx, dword [ebp - 0x74]
mov edi, dword [ebp - 0x84]
mov dword [ebp - 0x7c], ecx
cmp byte [eax - 2], 0x77
jne 0x40a69c
cmp byte [eax - 1], 0x6f
jne 0x40a69c
cmp byte [eax], 0x72
jne 0x40a69c
cmp byte [eax + 1], 0x64
jne 0x40a69c
cmp byte [eax + 2], 0x2f
jne 0x40a69c
cmp byte [eax + 3], 0x64
jne 0x40a69c
cmp byte [eax + 4], 0x6f
jne 0x40a69c
cmp byte [eax + 5], 0x63
jne 0x40a69c
cmp byte [eax + 6], 0x75
jne 0x40a69c
cmp byte [eax + 7], 0x6d
jne 0x40a69c
cmp byte [eax + 8], 0x65
jne 0x40a69c
cmp byte [eax + 9], 0x6e
jne 0x40a69c
cmp byte [eax + 0xa], 0x74
jne 0x40a69c
cmp byte [eax + 0xb], 0x2e
jne 0x40a69c
cmp byte [eax + 0xc], 0x78
jne 0x40a69c
cmp byte [eax + 0xd], 0x6d
jne 0x40a69c
cmp byte [eax + 0xe], 0x6c
je 0x40a6af
inc eax
add ecx, eax
cmp ebx, dword [ebp - 0x78]
ja 0x40a6bd
jb 0x40a6aa
cmp ecx, edx
jae 0x40a6bd
mov ecx, dword [ebp - 0x7c]
jmp 0x40a637
mov dword [edi + 0x48], 0x60
mov dword [edi + 0x4c], ebx
mov byte [ebp - 0x61], 1
mov ecx, dword [ebp - 0x6c]
mov edx, esi
mov eax, ecx
add edx, 0xfffffff0
adc eax, 0xffffffff
mov dword [ebp - 0x7c], eax
cmp eax, ebx
jb 0x40a777
ja 0x40a6df
cmp edx, ebx
jbe 0x40a777
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x68]
add eax, 2
sub ecx, dword [ebp - 0x74]
cmp byte [ebp - 0x61], 0
mov edi, dword [ebp - 0x84]
mov dword [ebp - 0x78], ecx
jne 0x40a774
cmp byte [eax - 2], 0x78
jne 0x40a753
cmp byte [eax - 1], 0x6c
jne 0x40a753
cmp byte [eax], 0x2f
jne 0x40a753
cmp byte [eax + 1], 0x77
jne 0x40a753
cmp byte [eax + 2], 0x6f
jne 0x40a753
cmp byte [eax + 3], 0x72
jne 0x40a753
cmp byte [eax + 4], 0x6b
jne 0x40a753
cmp byte [eax + 5], 0x62
jne 0x40a753
cmp byte [eax + 6], 0x6f
jne 0x40a753
cmp byte [eax + 7], 0x6f
jne 0x40a753
cmp byte [eax + 8], 0x6b
jne 0x40a753
cmp byte [eax + 9], 0x2e
jne 0x40a753
cmp byte [eax + 0xa], 0x78
jne 0x40a753
cmp byte [eax + 0xb], 0x6d
jne 0x40a753
cmp byte [eax + 0xc], 0x6c
je 0x40a766
inc eax
add ecx, eax
cmp ebx, dword [ebp - 0x7c]
ja 0x40a774
jb 0x40a761
cmp ecx, edx
jae 0x40a774
mov ecx, dword [ebp - 0x78]
jmp 0x40a6fa
mov dword [edi + 0x48], 0x45
mov dword [edi + 0x4c], ebx
mov byte [ebp - 0x61], 1
mov ecx, dword [ebp - 0x6c]
mov edx, esi
mov eax, ecx
add edx, 0xffffffef
adc eax, 0xffffffff
mov dword [ebp - 0x7c], eax
cmp eax, ebx
jb 0x40a827
ja 0x40a796
cmp edx, ebx
jbe 0x40a827
mov edi, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x78], edi
add eax, 2
mov edi, dword [ebp - 0x74]
sub dword [ebp - 0x78], edi
cmp byte [ebp - 0x61], 0
mov edi, dword [ebp - 0x84]
jne 0x40a827
cmp byte [eax - 2], 0x70
jne 0x40a813
cmp byte [eax - 1], 0x70
jne 0x40a813
cmp byte [eax], 0x74
jne 0x40a813
cmp byte [eax + 1], 0x2f
jne 0x40a813
cmp byte [eax + 2], 0x70
jne 0x40a813
cmp byte [eax + 3], 0x72
jne 0x40a813
cmp byte [eax + 4], 0x65
jne 0x40a813
cmp byte [eax + 5], 0x73
jne 0x40a813
cmp byte [eax + 6], 0x65
jne 0x40a813
cmp byte [eax + 7], 0x6e
jne 0x40a813
cmp byte [eax + 8], 0x74
jne 0x40a813
cmp byte [eax + 9], 0x61
jne 0x40a813
cmp byte [eax + 0xa], 0x74
jne 0x40a813
cmp byte [eax + 0xb], 0x69
jne 0x40a813
cmp byte [eax + 0xc], 0x6f
jne 0x40a813
cmp byte [eax + 0xd], 0x6e
je 0x40a890
mov ecx, dword [ebp - 0x78]
inc eax
add ecx, eax
cmp ebx, dword [ebp - 0x7c]
ja 0x40a824
jb 0x40a7b4
cmp ecx, edx
jb 0x40a7b4
mov ecx, dword [ebp - 0x6c]
mov dl, byte [ebp - 0x61]
add esi, 0xfffffff9
adc ecx, 0xffffffff
mov dword [ebp - 0x6c], ecx
cmp ecx, ebx
jb 0x40aa2e
ja 0x40a845
cmp esi, ebx
jbe 0x40aa2e
mov ecx, dword [ebp - 0x74]
sub dword [ebp - 0x68], ecx
lea eax, [ecx + 2]
test dl, dl
jne 0x40aa2e
mov edx, dword [ebp - 0x6c]
cmp byte [eax - 2], 0x76
jne 0x40a876
cmp byte [eax - 1], 0x69
jne 0x40a876
cmp byte [eax], 0x73
jne 0x40a876
cmp byte [eax + 1], 0x69
jne 0x40a876
cmp byte [eax + 2], 0x6f
je 0x40a8a1
mov ecx, dword [ebp - 0x68]
inc eax
add ecx, eax
cmp ebx, edx
ja 0x40aa2e
jb 0x40a859
cmp ecx, esi
jae 0x40aa2e
jmp 0x40a859
mov ecx, dword [ebp - 0x6c]
mov dl, 1
mov dword [edi + 0x48], 0x46
mov dword [edi + 0x4c], ebx
jmp 0x40a82a
mov dword [edi + 0x48], 0x47
jmp 0x40aa01
push 0x20
push str.mimetypeapplication_vnd.sun.xml.
push esi
call fcn.0049450a
add esp, 0xc
test eax, eax
jne 0x40a940
push 4
add esi, 0x20
push str.calc
push esi
call fcn.0049450a
add esp, 0xc
test eax, eax
jne 0x40a8e4
mov dword [edi + 0x48], 0x48
jmp 0x40aa01
push 4
push str.draw
push esi
call fcn.0049450a
add esp, 0xc
test eax, eax
jne 0x40a904
mov dword [edi + 0x48], 0x49
jmp 0x40aa01
push 7
push str.impress
push esi
call fcn.0049450a
add esp, 0xc
test eax, eax
jne 0x40a924
mov dword [edi + 0x48], 0x4a
jmp 0x40aa01
push 6
push str.writer
push esi
call fcn.0049450a
add esp, 0xc
mov dword [edi + 0x48], 0x4b
jmp 0x40aa01
push 0x33
push str.mimetypeapplication_vnd.oasis.opendocument.graphics
push esi
call fcn.0049450a
add esp, 0xc
test eax, eax
jne 0x40a960
mov dword [edi + 0x48], 0x4c
jmp 0x40aa01
push 0x37
push str.mimetypeapplication_vnd.oasis.opendocument.presentation
push esi
call fcn.0049450a
add esp, 0xc
test eax, eax
jne 0x40a980
mov dword [edi + 0x48], 0x4d
jmp 0x40aa01
push 0x36
push str.mimetypeapplication_vnd.oasis.opendocument.spreadsheet
push esi
call fcn.0049450a
add esp, 0xc
test eax, eax
jne 0x40a99d
mov dword [edi + 0x48], 0x4e
jmp 0x40aa01
push 0x2f
push str.mimetypeapplication_vnd.oasis.opendocument.text
push esi
call fcn.0049450a
add esp, 0xc
test eax, eax
jne 0x40a9ba
mov dword [edi + 0x48], 0x4f
jmp 0x40aa01
push 0x19
push str.Index_Tables_DataList.iwa
push esi
call fcn.0049450a
add esp, 0xc
test eax, eax
jne 0x40a9e6
mov dword [edi + 0x48], 0x51
mov dword [edi + 0x4c], ebx
call fcn.0047b26a
mov dword [eax + 0x7f], 1
jmp 0x40aa2e
push 0xb
push str.Index_Slide
push esi
call fcn.0049450a
add esp, 0xc
test eax, eax
jne 0x40aa06
mov dword [edi + 0x48], 0x52
mov dword [edi + 0x4c], ebx
jmp 0x40aa2e
push 0x12
push str.Index_Document.iwa
push esi
call fcn.0049450a
add esp, 0xc
test eax, eax
jne 0x40aa2e
call fcn.0047b26a
cmp dword [eax + 0x7f], ebx
jne 0x40aa2e
mov dword [edi + 0x50], 0x50
mov dword [edi + 0x54], ebx
push 0x1e
lea eax, [ebp - 0x60]
push ebx
push eax
call fcn.00495f40
push 0x1e
push dword [ebp - 0x74]
lea eax, [ebp - 0x60]
push eax
call fcn.004960a0
movzx eax, word [ebp - 0x5a]
add esp, 0x18
shr eax, 3
cmp dword [ebp - 0x4e], 0
jne 0x40aa6f
cmp word [ebp - 0x58], 8
je 0x40aa66
cmp word [ebp - 0x58], 9
jne 0x40aa6f
cmp eax, 1
je 0x40ab80
movzx eax, word [ebp - 0x46]
mov ecx, dword [edi + 0x20]
add ecx, eax
movzx eax, word [ebp - 0x44]
add ecx, dword [ebp - 0x4e]
add eax, 0x1e
add eax, ecx
mov ecx, dword [ebp - 0x70]
jmp 0x40ac7a
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x24]
sbb ecx, dword [edi + 0x2c]
cmp dword [edi + 0x1c], ecx
jl 0x40ab66
jg 0x40aaac
cmp dword [edi + 0x18], eax
jbe 0x40ab66
add eax, 0x2e
adc ecx, ebx
cmp dword [edi + 0x1c], ecx
jl 0x40aaf0
jg 0x40aabd
cmp dword [edi + 0x18], eax
jbe 0x40aaf0
push 0x2e
lea eax, [ebp - 0x40]
push ebx
push eax
call fcn.00495f40
push 0x2e
lea eax, [ebp - 0x40]
push esi
push eax
call fcn.004960a0
movzx eax, word [ebp - 0x22]
add esp, 0x18
movzx ecx, word [ebp - 0x20]
add ecx, eax
movzx eax, word [ebp - 0x24]
add ecx, eax
mov eax, dword [edi + 0x20]
add ecx, 0x2e
jmp 0x40aa82
mov eax, dword [edi + 0xc]
lea ecx, [ebp - 0xd4]
push dword [eax + 0xc]
push dword [eax + 8]
call fcn.0044e3e0
mov byte [ebp - 4], 2
push dword [edi + 0x24]
lea ecx, [ebp - 0xd4]
push dword [edi + 0x20]
call fcn.0044e45d
push 0x2e
mov esi, eax
lea eax, [ebp - 0x40]
push ebx
push eax
call fcn.00495f40
push 0x2e
lea eax, [ebp - 0x40]
push esi
push eax
call fcn.004960a0
movzx eax, word [ebp - 0x22]
add esp, 0x18
movzx ecx, word [ebp - 0x20]
add ecx, eax
movzx eax, word [ebp - 0x24]
add ecx, eax
add ecx, 0x2e
mov eax, dword [edi + 0x20]
add eax, ecx
mov ecx, dword [ebp - 0x70]
mov dword [ecx], eax
lea ecx, [ebp - 0xd4]
mov dword [edi + 0x3c], ebx
call fcn.0044e445
jmp 0x40a437
mov eax, dword [edi + 0xc]
lea ecx, [ebp - 0xd4]
push dword [eax + 0xc]
push dword [eax + 8]
call fcn.0044e3e0
mov byte [ebp - 4], 3
jmp 0x40ab08
mov ecx, dword [edi + 0x24]
mov eax, dword [edi + 0x20]
cmp dword [edi + 0x2c], ecx
jg 0x40a432
jl 0x40ab9a
cmp dword [edi + 0x28], eax
ja 0x40a432
cmp byte [edi + 0x40], 0
je 0x40abb0
xorps xmm0, xmm0
movlpd qword [ebp - 0x80], xmm0
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x80]
jmp 0x40abb6
sub eax, dword [edi + 0x28]
sbb ecx, dword [edi + 0x2c]
push ecx
push eax
lea ecx, [ebp + 8]
call fcn.0044e7ac
mov ecx, dword [edi + 0x20]
mov esi, ebx
mov edx, dword [edi + 0x24]
mov dword [ebp - 0x7c], eax
cmp edx, ebx
ja 0x40a432
jb 0x40abe1
cmp ecx, 0x1dcd6500
ja 0x40a432
mov eax, dword [edi + 0x2c]
cmp eax, edx
jg 0x40a432
jl 0x40abf7
cmp dword [edi + 0x28], ecx
ja 0x40a432
mov ebx, dword [edi + 0x2c]
mov eax, ecx
sub eax, dword [edi + 0x28]
mov dword [ebp - 0x68], edx
sbb dword [ebp - 0x68], ebx
mov ebx, dword [edi + 0x1c]
cmp ebx, dword [ebp - 0x68]
push 0
pop ebx
jl 0x40acb4
jg 0x40ac1f
cmp dword [edi + 0x18], eax
jbe 0x40acb4
add eax, 4
push 0
adc dword [ebp - 0x68], ebx
mov ebx, dword [edi + 0x1c]
cmp ebx, dword [ebp - 0x68]
pop ebx
jl 0x40ac84
jg 0x40ac37
cmp dword [edi + 0x18], eax
jbe 0x40ac84
mov eax, dword [ebp - 0x7c]
cmp byte [eax + esi], 0x50
jne 0x40ac55
cmp byte [eax + esi + 1], 0x4b
jne 0x40ac55
cmp byte [eax + esi + 2], 7
jne 0x40ac55
cmp byte [eax + esi + 3], 8
je 0x40ac66
add ecx, 1
mov dword [edi + 0x20], ecx
adc edx, ebx
inc esi
mov dword [edi + 0x24], edx
jmp 0x40abcb
or ecx, edx
mov byte [edi + 0x40], bl
mov ecx, dword [ebp - 0x70]
jne 0x40ac74
mov dword [ecx], ebx
jmp 0x40ac7c
mov eax, dword [edi + 0x20]
add eax, 0x10
mov dword [ecx], eax
mov dword [edi + 0x3c], ebx
jmp 0x40a437
add ecx, 4
mov dword [edi + 0x20], ecx
mov eax, ecx
adc edx, ebx
mov dword [edi + 0x24], edx
mov ecx, dword [ebp - 0x70]
mov byte [edi + 0x40], 1
push 2
mov dword [ecx], eax
mov ecx, dword [edi + 0x28]
add ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x2c]
adc eax, dword [edi + 0x1c]
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], eax
pop ecx
jmp 0x40a435
mov eax, dword [edi + 0x20]
jmp 0x40ac91