Function at 0x4516a0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, 0x22
lea esp, [esp - 0xffc]
push eax
sub edi, 1
jne 0x4516a9
lea esp, [esp - 0x500]
mov edi, dword [esp + 0x22500]
push ebx
push esi
push edi
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x22504], 0
mov dword [ebp - 0x202a4], 0
mov dword [ebp - 0x202a0], 0
mov dword [ebp - 0x2029c], 0
mov dword [ebp - 0x20298], 0
mov dword [ebp - 0x20294], 0
xor eax, eax
push fcn.00451630
push ebp
push 0x4154e0
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [0x696010], 0xffffffff
lea edx, [ebp - 0x20294]
mov eax, 2
call fcn.00415c30
mov eax, dword [ebp - 0x20294]
mov dl, 1
call fcn.00484950
test al, al
je 0x4517ac
lea eax, [ebp - 0x20298]
call fcn.00403c70
push 0
lea edx, [ebp - 0x2029c]
mov eax, 2
call fcn.00415c30
mov edx, dword [ebp - 0x2029c]
mov ecx, str._is_a_directory__cannot_be_previewed
lea eax, [ebp - 0x20298]
call fcn.00408c60
mov edx, dword [ebp - 0x20298]
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x588]
call fcn.005403b0
jmp 0x4528f2
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
call fcn.005b0af0
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x5d8]
mov edx, 2
call fcn.0053eda0
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4d4]
xor edx, edx
call fcn.0055ec40
mov eax, dword [0x8b9630]
mov edx, 0x61f5d0
call fcn.005403b0
mov eax, dword [0x6985f0]
mov edx, 0x61f5d0
call fcn.005403b0
lea edx, [ebp - 0x20298]
mov eax, 2
call fcn.00415c30
mov edx, dword [ebp - 0x20298]
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x588]
call fcn.005403b0
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x580]
xor edx, edx
call fcn.005403b0
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x584]
xor edx, edx
call fcn.005403b0
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x5ec]
xor edx, edx
call fcn.0056a2b0
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
mov edx, 1
call fcn.005a3fc0
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
mov edx, 3
mov ecx, dword [0x8b9630]
mov ecx, dword [ecx + 0x4fc]
mov ecx, dword [ecx]
call dword [ecx + 0x5e4]
mov eax, str.Offset
push eax
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
xor ecx, ecx
xor edx, edx
mov ebx, dword [0x8b9630]
mov ebx, dword [ebx + 0x4fc]
mov ebx, dword [ebx]
call dword [ebx + 0x664]
mov eax, 0x61f5fc
push eax
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
xor ecx, ecx
mov edx, 1
mov ebx, dword [0x8b9630]
mov ebx, dword [ebx + 0x4fc]
mov ebx, dword [ebx]
call dword [ebx + 0x664]
mov eax, str.Possible_UTF8
push eax
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
xor ecx, ecx
mov edx, 2
mov ebx, dword [0x8b9630]
mov ebx, dword [ebx + 0x4fc]
mov ebx, dword [ebx]
call dword [ebx + 0x664]
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
mov eax, dword [eax + 0xe8]
mov edx, str.Courier
mov ecx, dword [0x8b9630]
mov ecx, dword [ecx + 0x4fc]
mov ecx, dword [ecx + 0xe8]
mov ecx, dword [ecx]
call dword [ecx + 0xa0]
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
mov eax, dword [eax + 0xe8]
mov edx, 0xa
mov ecx, dword [0x8b9630]
mov ecx, dword [ecx + 0x4fc]
mov ecx, dword [ecx + 0xe8]
mov ecx, dword [ecx]
call dword [ecx + 0xa4]
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
mov ecx, 0x60
xor edx, edx
call fcn.005a3860
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
mov ecx, 0x1cc
mov edx, 1
call fcn.005a3860
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
mov ecx, 0xb4
mov edx, 2
call fcn.005a3860
mov dword [ebp - 0x268], 0
mov dword [ebp - 0x264], 0
xor eax, eax
push 0x451aad
push ebp
push 0x415860
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x20294]
mov eax, 2
call fcn.00415c30
mov edx, dword [ebp - 0x20294]
lea eax, [ebp - 0x260]
call fcn.00415c20
mov byte [0x5f24e0], 0
lea eax, [ebp - 0x260]
mov edx, 1
call fcn.00413c50
call fcn.0040f2a0
lea edx, [ebp - 0x2029c]
mov eax, 2
call fcn.00415c30
mov eax, dword [ebp - 0x2029c]
lea edx, [ebp - 0x268]
call fcn.0045eda0
cmp dword [ebp - 0x264], 0
jne 0x451a68
cmp dword [ebp - 0x268], 0
jne 0x451a68
mov eax, str.The_file_is_empty__cannot_be_previewed
call fcn.00426c60
jmp 0x451a9f
lea edx, [ebp - 0x202a0]
mov eax, 2
call fcn.00415c30
mov eax, dword [ebp - 0x202a0]
lea edx, [ebp - 0x20294]
call fcn.004836b0
mov eax, dword [ebp - 0x20294]
call fcn.004844c0
xor eax, eax
pop edx
add esp, 0xc
mov dword fs:[eax], edx
jmp 0x451b08
xor edx, edx
pop eax
add esp, 0xc
mov dword fs:[edx], eax
jmp 0x4528f2
cmp dword [ebp - 0x264], 0
ja 0x451b1f
jb 0x451b38
cmp dword [ebp - 0x268], 0x4000000
jbe 0x451b38
push 0
mov ecx, 4
xor dl, dl
mov eax, str.Hex_preview_is_currently_limited_to_small_files__up_to_64_MB
call fcn.0054c5f0
jmp 0x4528f2
lea eax, [ebp - 0x20298]
call fcn.00403c70
push 0
mov eax, 0x61f368
mov dword [ebp - 0x202b8], eax
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x202c0], eax
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x202bc], eax
push dword [ebp - 0x202bc]
push dword [ebp - 0x202c0]
mov ecx, 0xff
lea edx, [ebp - 0x203c0]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x202a4]
xor dx, dx
lea eax, [ebp - 0x203c0]
call fcn.004093e0
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x202a4]
call fcn.0040a2a0
mov eax, dword [ebp - 0x202a4]
lea ecx, [ebp - 0x202a0]
xor edx, edx
call fcn.0045dd60
mov eax, dword [ebp - 0x202a0]
mov dword [ebp - 0x202b4], eax
mov eax, 0x61c3d0
mov dword [ebp - 0x202b0], eax
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x202c0], eax
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x202bc], eax
push dword [ebp - 0x202bc]
push dword [ebp - 0x202c0]
mov ecx, 0xff
lea edx, [ebp - 0x203c0]
mov eax, 0xffffffff
call fcn.00405050
lea ecx, [ebp - 0x20294]
xor dx, dx
lea eax, [ebp - 0x203c0]
call fcn.004093e0
xor cl, cl
xor dx, dx
lea eax, [ebp - 0x20294]
call fcn.0040a2a0
mov eax, dword [ebp - 0x20294]
mov dword [ebp - 0x202ac], eax
mov eax, 0x61e788
mov dword [ebp - 0x202a8], eax
lea edx, [ebp - 0x202b8]
mov ecx, 4
lea eax, [ebp - 0x20298]
call fcn.00408ef0
mov edx, dword [ebp - 0x20298]
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x580]
call fcn.005403b0
mov edx, dword [ebp - 0x268]
mov eax, dword [ebp - 0x264]
shrd edx, eax, 4
shr eax, 4
add edx, 2
adc eax, 0
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
call fcn.005a3fc0
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0
mov dword [ebp - 0x288], 1
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x280], 0
lea eax, [ebp - 0x280]
push eax
lea edx, [ebp - 0x10290]
lea eax, [ebp - 0x260]
mov ecx, 0x10000
call fcn.004139f0
call fcn.0040f2a0
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x27c], 0
mov dword [ebp - 0x278], 0xffffffff
lea esi, [esi]
mov eax, dword [ebp - 0x278]
add eax, 1
mov dword [ebp - 0x278], eax
shl eax, 0xc
mov ecx, dword [ebp - 0x27c]
lea edx, [ebp + eax - 0x20290]
mov eax, dword [ebp - 0x274]
mov al, byte [ebp + eax - 0x10290]
mov byte [edx + ecx], al
mov eax, dword [ebp - 0x274]
add eax, 1
mov dword [ebp - 0x274], eax
cmp eax, dword [ebp - 0x280]
je 0x451d69
mov esi, esi
cmp dword [ebp - 0x278], 0xf
jl 0x451d18
add dword [ebp - 0x27c], 1
mov eax, dword [ebp - 0x274]
cmp eax, dword [ebp - 0x280]
jl 0x451d08
mov eax, dword [ebp - 0x27c]
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x274], 0
mov eax, dword [ebp - 0x284]
lea ebx, [eax - 1]
test ebx, ebx
jl 0x4526b4
mov dword [ebp - 0x27c], 0xffffffff
nop
mov eax, dword [ebp - 0x27c]
add eax, 1
mov dword [ebp - 0x27c], eax
mov edx, eax
mov eax, dword [ebp - 0x288]
add eax, edx
sub eax, 1
mov dword [ebp - 0x28c], eax
shl eax, 4
lea ecx, [ebp - 0x10]
mov edx, 8
call fcn.00485470
push dword [ebp - 0x10]
mov edx, dword [ebp - 0x27c]
mov eax, dword [ebp - 0x288]
lea ecx, [edx + eax]
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
xor edx, edx
mov esi, dword [0x8b9630]
mov esi, dword [esi + 0x4fc]
mov esi, dword [esi]
call dword [esi + 0x664]
lea eax, [ebp - 0xc]
xor edx, edx
call fcn.00408b60
mov dword [ebp - 0x278], 0xffffffff
lea esi, [esi]
add dword [ebp - 0x278], 1
mov eax, dword [ebp - 0x274]
add eax, 1
mov dword [ebp - 0x274], eax
cmp eax, dword [ebp - 0x280]
je 0x451e59
mov esi, esi
cmp dword [ebp - 0x278], 0xf
jl 0x451e30
push 0xf
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x20290]
shl eax, 8
or eax, 1
mov word [ebp - 0x20500], ax
lea eax, [ebp - 0x20500]
mov dword [ebp - 0x20400], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x1f290]
shl eax, 8
or eax, 1
mov word [ebp - 0x20600], ax
lea eax, [ebp - 0x20600]
mov dword [ebp - 0x203fc], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x1e290]
shl eax, 8
or eax, 1
mov word [ebp - 0x20700], ax
lea eax, [ebp - 0x20700]
mov dword [ebp - 0x203f8], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x1d290]
shl eax, 8
or eax, 1
mov word [ebp - 0x20800], ax
lea eax, [ebp - 0x20800]
mov dword [ebp - 0x203f4], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x1c290]
shl eax, 8
or eax, 1
mov word [ebp - 0x20900], ax
lea eax, [ebp - 0x20900]
mov dword [ebp - 0x203f0], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x1b290]
shl eax, 8
or eax, 1
mov word [ebp - 0x20a00], ax
lea eax, [ebp - 0x20a00]
mov dword [ebp - 0x203ec], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x1a290]
shl eax, 8
or eax, 1
mov word [ebp - 0x20b00], ax
lea eax, [ebp - 0x20b00]
mov dword [ebp - 0x203e8], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x19290]
shl eax, 8
or eax, 1
mov word [ebp - 0x20c00], ax
lea eax, [ebp - 0x20c00]
mov dword [ebp - 0x203e4], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x18290]
shl eax, 8
or eax, 1
mov word [ebp - 0x20d00], ax
lea eax, [ebp - 0x20d00]
mov dword [ebp - 0x203e0], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x17290]
shl eax, 8
or eax, 1
mov word [ebp - 0x20e00], ax
lea eax, [ebp - 0x20e00]
mov dword [ebp - 0x203dc], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x16290]
shl eax, 8
or eax, 1
mov word [ebp - 0x20f00], ax
lea eax, [ebp - 0x20f00]
mov dword [ebp - 0x203d8], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x15290]
shl eax, 8
or eax, 1
mov word [ebp - 0x21000], ax
lea eax, [ebp - 0x21000]
mov dword [ebp - 0x203d4], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x14290]
shl eax, 8
or eax, 1
mov word [ebp - 0x21100], ax
lea eax, [ebp - 0x21100]
mov dword [ebp - 0x203d0], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x13290]
shl eax, 8
or eax, 1
mov word [ebp - 0x21200], ax
lea eax, [ebp - 0x21200]
mov dword [ebp - 0x203cc], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x12290]
shl eax, 8
or eax, 1
mov word [ebp - 0x21300], ax
lea eax, [ebp - 0x21300]
mov dword [ebp - 0x203c8], eax
mov eax, dword [ebp - 0x27c]
movzx eax, byte [ebp + eax - 0x11290]
shl eax, 8
or eax, 1
mov word [ebp - 0x21400], ax
lea eax, [ebp - 0x21400]
mov dword [ebp - 0x203c4], eax
lea ecx, [ebp - 0x20400]
mov edx, 0xff
lea eax, [ebp - 0x203c0]
call fcn.004046a0
lea eax, [ebp - 0x203c0]
lea ecx, [ebp - 0xc]
xor dx, dx
call fcn.004093e0
mov eax, dword [ebp - 0x278]
lea edx, [eax + 1]
lea eax, [ebp - 0xc]
xor cx, cx
call fcn.00409800
lea eax, [ebp - 4]
xor edx, edx
call fcn.00408b60
lea eax, [ebp - 8]
xor edx, edx
call fcn.00408b60
mov edx, dword [ebp - 0xc]
test edx, edx
je 0x452124
mov edx, dword [edx - 4]
shl edx, 1
lea eax, [ebp - 4]
xor cx, cx
call fcn.00409800
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x45213b
mov ecx, dword [ecx - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
call fcn.00490e60
push 0x2e
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
shl eax, 8
or eax, 1
mov word [ebp - 0x20460], ax
lea eax, [ebp - 0x20460]
mov dword [ebp - 0x20360], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 1]
shl eax, 8
or eax, 1
mov word [ebp - 0x20560], ax
lea eax, [ebp - 0x20560]
mov dword [ebp - 0x2035c], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x20358], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 2]
shl eax, 8
or eax, 1
mov word [ebp - 0x20660], ax
lea eax, [ebp - 0x20660]
mov dword [ebp - 0x20354], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 3]
shl eax, 8
or eax, 1
mov word [ebp - 0x20760], ax
lea eax, [ebp - 0x20760]
mov dword [ebp - 0x20350], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x2034c], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 4]
shl eax, 8
or eax, 1
mov word [ebp - 0x20860], ax
lea eax, [ebp - 0x20860]
mov dword [ebp - 0x20348], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 5]
shl eax, 8
or eax, 1
mov word [ebp - 0x20960], ax
lea eax, [ebp - 0x20960]
mov dword [ebp - 0x20344], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x20340], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 6]
shl eax, 8
or eax, 1
mov word [ebp - 0x20a60], ax
lea eax, [ebp - 0x20a60]
mov dword [ebp - 0x2033c], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 7]
shl eax, 8
or eax, 1
mov word [ebp - 0x20b60], ax
lea eax, [ebp - 0x20b60]
mov dword [ebp - 0x20338], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x20334], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 8]
shl eax, 8
or eax, 1
mov word [ebp - 0x20c60], ax
lea eax, [ebp - 0x20c60]
mov dword [ebp - 0x20330], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 9]
shl eax, 8
or eax, 1
mov word [ebp - 0x20d60], ax
lea eax, [ebp - 0x20d60]
mov dword [ebp - 0x2032c], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x20328], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0xa]
shl eax, 8
or eax, 1
mov word [ebp - 0x20e60], ax
lea eax, [ebp - 0x20e60]
mov dword [ebp - 0x20324], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0xb]
shl eax, 8
or eax, 1
mov word [ebp - 0x20f60], ax
lea eax, [ebp - 0x20f60]
mov dword [ebp - 0x20320], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x2031c], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0xc]
shl eax, 8
or eax, 1
mov word [ebp - 0x21060], ax
lea eax, [ebp - 0x21060]
mov dword [ebp - 0x20318], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0xd]
shl eax, 8
or eax, 1
mov word [ebp - 0x21160], ax
lea eax, [ebp - 0x21160]
mov dword [ebp - 0x20314], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x20310], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0xe]
shl eax, 8
or eax, 1
mov word [ebp - 0x21260], ax
lea eax, [ebp - 0x21260]
mov dword [ebp - 0x2030c], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0xf]
shl eax, 8
or eax, 1
mov word [ebp - 0x21500], ax
lea eax, [ebp - 0x21500]
mov dword [ebp - 0x20308], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x20304], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x10]
shl eax, 8
or eax, 1
mov word [ebp - 0x21600], ax
lea eax, [ebp - 0x21600]
mov dword [ebp - 0x20300], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x11]
shl eax, 8
or eax, 1
mov word [ebp - 0x21700], ax
lea eax, [ebp - 0x21700]
mov dword [ebp - 0x202fc], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x202f8], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x12]
shl eax, 8
or eax, 1
mov word [ebp - 0x21800], ax
lea eax, [ebp - 0x21800]
mov dword [ebp - 0x202f4], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x13]
shl eax, 8
or eax, 1
mov word [ebp - 0x21900], ax
lea eax, [ebp - 0x21900]
mov dword [ebp - 0x202f0], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x202ec], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x14]
shl eax, 8
or eax, 1
mov word [ebp - 0x21a00], ax
lea eax, [ebp - 0x21a00]
mov dword [ebp - 0x202e8], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x15]
shl eax, 8
or eax, 1
mov word [ebp - 0x21b00], ax
lea eax, [ebp - 0x21b00]
mov dword [ebp - 0x202e4], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x202e0], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x16]
shl eax, 8
or eax, 1
mov word [ebp - 0x21c00], ax
lea eax, [ebp - 0x21c00]
mov dword [ebp - 0x202dc], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x17]
shl eax, 8
or eax, 1
mov word [ebp - 0x21d00], ax
lea eax, [ebp - 0x21d00]
mov dword [ebp - 0x202d8], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x202d4], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x18]
shl eax, 8
or eax, 1
mov word [ebp - 0x21e00], ax
lea eax, [ebp - 0x21e00]
mov dword [ebp - 0x202d0], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x19]
shl eax, 8
or eax, 1
mov word [ebp - 0x21f00], ax
lea eax, [ebp - 0x21f00]
mov dword [ebp - 0x202cc], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x202c8], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x1a]
shl eax, 8
or eax, 1
mov word [ebp - 0x22000], ax
lea eax, [ebp - 0x22000]
mov dword [ebp - 0x202c4], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x1b]
shl eax, 8
or eax, 1
mov word [ebp - 0x22100], ax
lea eax, [ebp - 0x22100]
mov dword [ebp - 0x202c0], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x202bc], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x1c]
shl eax, 8
or eax, 1
mov word [ebp - 0x22200], ax
lea eax, [ebp - 0x22200]
mov dword [ebp - 0x202b8], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x1d]
shl eax, 8
or eax, 1
mov word [ebp - 0x22300], ax
lea eax, [ebp - 0x22300]
mov dword [ebp - 0x202b4], eax
mov eax, 0x61f6e0
mov dword [ebp - 0x202b0], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x1e]
shl eax, 8
or eax, 1
mov word [ebp - 0x22400], ax
lea eax, [ebp - 0x22400]
mov dword [ebp - 0x202ac], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x1f]
shl eax, 8
or eax, 1
mov word [ebp - 0x22500], ax
lea eax, [ebp - 0x22500]
mov dword [ebp - 0x202a8], eax
lea ecx, [ebp - 0x20360]
mov edx, 0xff
lea eax, [ebp - 0x21400]
call fcn.004046a0
lea eax, [ebp - 0x21400]
lea ecx, [ebp - 8]
xor dx, dx
call fcn.004093e0
add dword [ebp - 0x290], 0x10
push dword [ebp - 8]
mov edx, dword [ebp - 0x27c]
mov eax, dword [ebp - 0x288]
lea ecx, [edx + eax]
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
mov edx, 1
mov esi, dword [0x8b9630]
mov esi, dword [esi + 0x4fc]
mov esi, dword [esi]
call dword [esi + 0x664]
mov eax, dword [ebp - 0xc]
lea edx, [ebp - 0x22504]
call fcn.0040b060
mov eax, dword [ebp - 0x22504]
lea edx, [ebp - 0x202a4]
call fcn.0040c8e0
push dword [ebp - 0x202a4]
mov edx, dword [ebp - 0x27c]
mov eax, dword [ebp - 0x288]
lea ecx, [edx + eax]
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
mov edx, 2
mov esi, dword [0x8b9630]
mov esi, dword [esi + 0x4fc]
mov esi, dword [esi]
call dword [esi + 0x664]
cmp ebx, dword [ebp - 0x27c]
jg 0x451db0
mov edx, dword [ebp - 0x280]
mov eax, edx
sar eax, 0x1f
add dword [ebp - 0x270], edx
adc dword [ebp - 0x26c], eax
mov eax, dword [ebp - 0x288]
add eax, dword [ebp - 0x284]
mov dword [ebp - 0x288], eax
push dword [ebp - 0x264]
push dword [ebp - 0x268]
imul ecx, dword [ebp - 0x26c], 0x64
mov eax, 0x64
mul dword [ebp - 0x270]
add edx, ecx
push edx
push eax
call fcn.00403ff0
mov edx, eax
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x5ec]
call fcn.0056a2b0
mov eax, dword [0x5f3160]
call fcn.00422010
cmp dword [ebp - 0x280], 0
je 0x45274f
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
cmp edx, dword [ebp - 0x264]
ja 0x45274f
jb 0x451cc8
cmp eax, dword [ebp - 0x268]
jb 0x451cc8
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4fc]
mov dl, 1
call fcn.005b0bc0
lea eax, [ebp - 0x260]
call fcn.00415bf0
call fcn.0040f2a0
mov eax, dword [0x6985f0]
xor dl, dl
mov ecx, dword [0x6985f0]
mov ecx, dword [ecx]
call dword [ecx + 0xec]
mov eax, dword [0x8b9630]
mov dl, 1
mov ecx, dword [0x8b9630]
mov ecx, dword [ecx]
call dword [ecx + 0xec]
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x5ec]
mov edx, 0x64
call fcn.0056a2b0
mov eax, dword [0x6985f0]
lea edx, [ebp - 0x20298]
call fcn.0053d370
mov edx, dword [ebp - 0x20298]
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x498]
call fcn.005403b0
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x588]
lea edx, [ebp - 0x20298]
call fcn.0053d370
mov edx, dword [ebp - 0x20298]
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x49c]
call fcn.005403b0
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x580]
lea edx, [ebp - 0x20298]
call fcn.0053d370
mov edx, dword [ebp - 0x20298]
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4a0]
call fcn.005403b0
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4a4]
xor edx, edx
call fcn.005403b0
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4dc]
xor dl, dl
call fcn.0055d570
mov eax, dword [0x8b9630]
mov eax, dword [eax + 0x4d4]
xor dl, dl
call fcn.0055f4b0
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x4a0]
mov dl, 1
mov ecx, dword [0x6985f0]
mov ecx, dword [ecx + 0x4a0]
mov ecx, dword [ecx]
call dword [ecx + 0xec]
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x54c]
mov dl, 1
mov ecx, dword [0x6985f0]
mov ecx, dword [ecx + 0x54c]
mov ecx, dword [ecx]
call dword [ecx + 0xec]
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x54c]
xor dl, dl
mov ecx, dword [0x6985f0]
mov ecx, dword [ecx + 0x54c]
mov ecx, dword [ecx]
call dword [ecx + 0x220]
mov eax, dword [0x6985f0]
mov eax, dword [eax + 0x548]
mov dl, 1
mov ecx, dword [0x6985f0]
mov ecx, dword [ecx + 0x548]
mov ecx, dword [ecx]
call dword [ecx + 0xec]
mov dword [0x696010], 0
xor edx, edx
pop eax
add esp, 0xc
mov dword fs:[edx], eax
mov eax, ebp
call fcn.00451630
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret