Function at 0x300edb30
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x40
push ebp
mov ebp, ecx
mov eax, ebp
and eax, 0xfffff000
mov dword [esp + 0x20], eax
mov eax, dword [eax]
push edi
mov edi, dword [eax + 0x138]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], edi
call fcn.300ba370
test al, al
je 0x300edb79
test edi, edi
je 0x300edb83
push 1
push ebp
mov ecx, edi
call fcn.30018760
test eax, eax
jne 0x300edb83
pop edi
xor eax, eax
pop ebp
add esp, 0x40
ret 0xc
mov ecx, edi
call fcn.300f88b0
mov ecx, dword [edi + 0xbfc]
mov dl, byte [ecx + 0x21d]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
mov ecx, eax
and ecx, 7
cmp cl, 7
mov byte [esp + 0x18], dl
jne 0x300edbb2
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
push ebx
mov ecx, eax
push esi
and ecx, 0xfffffff8
call fcn.30075ed0
mov dword [esp + 0x40], eax
cmp byte [ebp + 0x2d], 7
jne 0x300edc6e
mov ebx, dword [esp + 0x54]
mov edx, ebx
and edx, 7
cmp dl, 7
mov eax, ebx
jne 0x300edbe2
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
and eax, 0xfffffff8
mov eax, dword [eax + 8]
test eax, eax
je 0x300edbf0
mov esi, dword [eax]
jmp 0x300edbf4
mov esi, dword [esp + 0x54]
test eax, eax
je 0x300edc09
mov ecx, ebp
call fcn.300ed6e0
cmp eax, esi
jg 0x300edc6e
push 1
inc esi
push esi
jmp 0x300edc67
mov ecx, dword [esp + 0x20]
mov edx, dword [edi + 0xca0]
push ecx
push edx
push ebx
call fcn.30007f50
add esp, 0xc
test al, al
je 0x300edc33
mov eax, dword [esp + 0x58]
push 0
push eax
mov ecx, edi
call fcn.30005bf0
push eax
jmp 0x300edc67
cmp dword [esp + 0x28], 7
jge 0x300edc72
mov edx, dword [esp + 0x40]
push 0
push 0xa
lea ecx, [esp + 0x44]
push ecx
push edx
call fcn.300f6270
add esp, 0x10
test eax, eax
je 0x300edc6e
mov ecx, ebp
call fcn.300ed6e0
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jg 0x300edc6e
push 1
inc ecx
push ecx
mov ecx, ebp
call fcn.300f28e0
mov ebx, dword [esp + 0x54]
mov al, byte [esp + 0x20]
test al, al
mov ecx, ebp
je 0x300edc84
push ebx
call fcn.300eb480
jmp 0x300edc8c
push 0
push ebx
call fcn.300eb260
mov edx, eax
xor ebx, ebx
cmp edx, ebx
mov dword [esp + 0x14], edx
mov byte [esp + 0x3c], 0
mov byte [esp + 0x12], 0
je 0x300edce3
mov ecx, dword [edx + 8]
mov eax, ecx
and eax, 3
test cl, 4
jne 0x300edcb3
mov ecx, eax
jmp 0x300edcc0
mov ecx, dword [edx + 8]
and ecx, 0xfffffff8
mov cx, word [ecx + 6]
or cx, ax
shr cl, 2
test cl, 1
je 0x300ee1df
test byte [esp + 0x5c], 0x40
jne 0x300ee1df
pop esi
pop ebx
pop edi
xor eax, eax
pop ebp
add esp, 0x40
ret 0xc
mov eax, dword [esp + 0x5c]
and eax, 0xffbf
test ah, 2
mov dword [esp + 0x5c], eax
jne 0x300eddc3
mov ecx, ebp
mov dword [esp + 0x30], ebx
call fcn.300eb560
mov esi, eax
cmp esi, ebx
je 0x300eddc3
mov edi, edi
test byte [esi + 0x2c], 1
je 0x300edd8f
mov al, byte [esp + 0x20]
test al, al
mov ecx, esi
je 0x300edd2c
mov edx, dword [esp + 0x54]
push edx
call fcn.300eb480
jmp 0x300edd36
mov eax, dword [esp + 0x54]
push eax
call fcn.300eb410
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, esi
mov edi, eax
call fcn.300ed550
test edi, edi
mov ebx, eax
je 0x300edd6b
test ebx, ebx
je 0x300edd6b
or dword [esp + 0x24], 1
mov edx, dword [ebx + 8]
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], edx
call fcn.300948d0
test al, al
jne 0x300edd6b
mov al, 1
jmp 0x300edd6d
xor al, al
test byte [esp + 0x24], 1
je 0x300edd79
and dword [esp + 0x24], 0xfffffffe
test al, al
je 0x300edd8f
mov ecx, edi
call fcn.30098290
test al, al
je 0x300eddb2
cmp dword [esp + 0x28], 8
jge 0x300eddb2
mov eax, dword [esp + 0x30]
inc eax
cmp eax, 0x100
mov dword [esp + 0x30], eax
jge 0x300ede00
mov ecx, esi
call fcn.300eb560
mov esi, eax
test esi, esi
jne 0x300edd10
jmp 0x300eddc3
test edi, edi
mov dword [esp + 0x14], edi
mov byte [esp + 0x12], 1
jne 0x300ee1df
mov edx, dword [ebp + 0x28]
cmp dword [ebp + 0x24], edx
jb 0x300edfb9
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
xor edi, edi
test edx, edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x14], edi
jbe 0x300ede2f
mov ecx, dword [ebp + 0x20]
mov esi, edx
add ecx, 8
mov dword [esp + 0x14], esi
mov eax, dword [ecx]
test al, 4
jne 0x300ede17
test eax, 0xfffffff8
jmp 0x300ede1d
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.300067f0
mov dword [esi + 0x6b0], 1
jmp 0x300eddc3
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x300ede25
inc edi
add ecx, 0xc
dec esi
jne 0x300eddf3
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x30]
mov ebx, dword [ebp + 0x20]
lea eax, [edx + edx*2]
lea ecx, [edi*4]
cmp ecx, eax
jb 0x300ede5e
mov ecx, dword [esp + 0x34]
push 3
push 3
add edx, edx
push 0xc
push edx
mov dword [esp + 0x48], edx
call fcn.30208400
mov ebx, eax
jmp 0x300ede62
mov dword [esp + 0x38], edx
mov esi, dword [ebp + 0x20]
xor eax, eax
cmp ebx, esi
mov dword [esp + 0x24], eax
je 0x300ede97
cmp edi, dword [ebp + 0x28]
jne 0x300ede97
mov eax, dword [esp + 0x30]
lea ecx, [eax + eax*2]
shl ecx, 2
mov edx, ecx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x24], eax
jmp 0x300edf2d
cmp dword [ebp + 0x28], eax
mov dword [esp + 0x44], 2
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], eax
jbe 0x300edf24
xor edx, edx
mov esi, ebx
mov eax, dword [ebp + 0x20]
lea ecx, [edx + eax]
mov eax, dword [ecx + 8]
test al, 4
jne 0x300edec4
test eax, 0xfffffff8
jmp 0x300edeca
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x300edf11
mov edi, dword [esp + 0x24]
mov eax, esi
inc edi
add esi, 0xc
cmp ecx, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], esi
je 0x300edf11
mov esi, ecx
mov edi, dword [esi]
mov dword [eax], edi
mov edi, dword [esi + 4]
mov dword [eax + 4], edi
mov esi, dword [esi + 8]
mov dword [eax + 8], esi
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
mov dword [ecx], eax
mov eax, dword [esp + 0x48]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x28]
inc eax
add edx, 0xc
cmp eax, ecx
mov dword [esp + 0x14], eax
jb 0x300edeb0
lea ecx, [esp + 0x44]
call fcn.300ba4b0
mov eax, dword [ebp + 0x20]
cmp ebx, eax
mov ecx, dword [esp + 0x24]
mov dword [ebp + 0x24], ecx
je 0x300edf45
mov ecx, dword [esp + 0x34]
push eax
call fcn.302095c0
cmp dword [ebp + 0x20], ebx
jne 0x300edf53
test ebx, ebx
jne 0x300edf53
mov dword [ebp + 0x20], ebx
jmp 0x300edf60
lea eax, [ebp + 0x20]
push ebx
push eax
call fcn.3020a280
add esp, 8
mov edx, dword [esp + 0x38]
mov dword [ebp + 0x28], edx
mov edx, dword [ebp + 0x1c]
test edx, edx
mov dword [ebp + 0x18], ebx
je 0x300edfb9
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x14]
je 0x300edfb9
mov ecx, dword [edx + 8]
mov edi, dword [edx + 4]
shl ecx, 2
mov esi, ecx
shr ecx, 2
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
xor esi, esi
rep stosb byte es:[edi], al
mov dword [edx + 0xc], esi
cmp dword [ebp + 0x24], esi
jbe 0x300edfb9
mov edi, dword [esp + 0x20]
mov ecx, dword [ebp + 0x20]
push edi
push esi
push ecx
mov ecx, dword [ebp + 0x1c]
call fcn.300e9830
mov eax, dword [ebp + 0x24]
inc esi
cmp esi, eax
jb 0x300edfa3
mov eax, dword [ebp + 0x24]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 0x20]
lea ecx, [eax + edx*4]
mov dword [esp + 0x14], ecx
call fcn.300ba4b0
mov eax, dword [esp + 0x54]
mov ecx, eax
and ecx, 7
cmp cl, 7
jne 0x300edfe2
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx]
mov edx, dword [esp + 0x1c]
mov ebx, dword [edx + 0x20]
and eax, 0xfffffff8
mov ebp, eax
mov al, byte [edi + 0x119]
mov esi, ebp
and esi, 0xfffffff8
test al, al
je 0x300ee029
test esi, esi
je 0x300ee029
push ebx
call fcn.300059e0
add esp, 4
test eax, eax
je 0x300ee029
push esi
mov ecx, edi
call fcn.30209250
test eax, eax
je 0x300ee029
push esi
push ebx
mov ecx, edi
call fcn.30209d00
mov ebx, dword [esp + 0x14]
lea eax, [ebx + 8]
push ebp
push eax
mov ecx, edi
mov dword [esp + 0x38], eax
call fcn.302087c0
mov esi, dword [esp + 0x5c]
test si, si
je 0x300ee07e
mov edi, dword [esp + 0x30]
mov ebp, dword [edi]
movzx eax, si
mov edx, eax
and edx, 3
or ebp, edx
test eax, 0xfffffffc
mov dword [edi], ebp
mov ecx, ebp
je 0x300ee07e
test cl, 4
jne 0x300ee06d
mov ecx, ebx
call fcn.300e99f0
mov eax, dword [edi]
and eax, 0xfffffff8
add eax, 6
and esi, 0xfffc
or word [eax], si
mov ebp, dword [esp + 0x18]
lea esi, [ebp + 0x28]
mov ecx, esi
call fcn.3017e1e0
test eax, eax
mov edi, dword [esp + 0x1c]
je 0x300ee0cb
mov edx, dword [esp + 0x54]
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x3c]
push ecx
push edx
push edi
mov ecx, esi
call fcn.3009a8c0
test eax, eax
je 0x300ee0cb
mov ax, word [esp + 0x38]
mov cx, word [esp + 0x34]
mov word [ebx + 4], ax
mov word [ebx + 6], cx
mov ecx, dword [edi + 0x1c]
test ecx, ecx
lea ebx, [edi + 0x1c]
je 0x300ee0ec
mov edx, dword [esp + 0x20]
mov eax, dword [edi + 0x24]
push edx
mov edx, dword [edi + 0x20]
push eax
push edx
call fcn.300e9830
jmp 0x300ee16c
cmp dword [edi + 0x24], 8
jb 0x300ee16c
mov eax, dword [ebp + 0x20]
push 0
push eax
push 0x14
call fcn.30208150
add esp, 0xc
test eax, eax
je 0x300ee111
push 0x10
mov ecx, eax
call fcn.300e9780
jmp 0x300ee113
xor eax, eax
cmp dword [ebx], eax
jne 0x300ee11f
test eax, eax
jne 0x300ee11f
mov dword [ebx], eax
jmp 0x300ee129
push eax
push ebx
call fcn.3020a280
add esp, 8
mov eax, dword [edi + 0x28]
xor esi, esi
test eax, eax
jbe 0x300ee16c
xor ebp, ebp
mov ecx, dword [edi + 0x20]
mov eax, dword [ecx + ebp + 8]
test al, 4
jne 0x300ee146
test eax, 0xfffffff8
jmp 0x300ee14c
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x300ee161
mov eax, dword [esp + 0x20]
push eax
push esi
push ecx
mov ecx, dword [ebx]
call fcn.300e9830
mov eax, dword [edi + 0x28]
inc esi
add ebp, 0xc
cmp esi, eax
jb 0x300ee134
inc dword [edi + 0x24]
mov ecx, dword [edi + 0x54]
mov esi, dword [ecx + 8]
test esi, esi
mov byte [esp + 0x3c], 1
jne 0x300ee182
xor ebx, ebx
jmp 0x300ee1df
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
mov ecx, dword [eax + 0x138]
mov edx, dword [ecx + 0xbfc]
mov ecx, dword [esp + 0x54]
xor eax, eax
mov al, byte [edx + 0x21d]
xor edi, edi
push eax
push ecx
mov ecx, esi
call fcn.300e8cc0
mov edx, dword [esi + 4]
mov ecx, dword [edx + eax*8]
test ecx, ecx
lea eax, [edx + eax*8]
je 0x300ee1bb
mov edi, dword [eax + 4]
test edi, edi
mov ebx, edi
je 0x300ee1df
mov esi, dword [esp + 0x30]
test byte [esi], 4
jne 0x300ee1d3
mov ecx, dword [esp + 0x14]
call fcn.300e99f0
mov eax, dword [esi]
and eax, 0xfffffff8
add eax, 6
or byte [eax + 1], 8
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 8]
mov edi, esi
mov ebp, esi
and edi, 3
and ebp, 4
jne 0x300ee1f6
mov eax, edi
jmp 0x300ee204
mov ecx, esi
and ecx, 0xfffffff8
xor eax, eax
mov ax, word [ecx + 6]
or ax, di
shr eax, 0xb
test al, 1
je 0x300ee4b6
test ebx, ebx
jne 0x300ee223
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
push edx
call fcn.300ed550
mov ebx, eax
test ebp, ebp
jne 0x300ee22b
mov esi, edi
jmp 0x300ee235
and esi, 0xfffffff8
movzx esi, word [esi + 6]
or si, di
mov eax, esi
shr eax, 0xc
test al, 1
je 0x300ee295
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x54c]
test eax, eax
je 0x300ee295
cmp byte [eax + 0x39], 8
jae 0x300ee295
lea edx, [esp + 0x38]
mov esi, 2
push edx
lea ecx, [ebx + 8]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
call fcn.3005df90
lea eax, [esp + 0x34]
push eax
lea ecx, [ebx + 0xc]
call fcn.3005df90
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
test al, 4
je 0x300ee28e
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xf7
mov byte [esp + 0x12], 0
jmp 0x300ee29a
mov esi, 2
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
mov ecx, eax
and ecx, 3
test al, 4
jne 0x300ee2ae
mov eax, ecx
jmp 0x300ee2b8
and eax, 0xfffffff8
movzx eax, word [eax + 6]
or ax, cx
shr eax, 0xd
test al, 1
je 0x300ee30f
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x54c]
test eax, eax
je 0x300ee30f
cmp byte [eax + 0x39], 9
jae 0x300ee30f
lea ecx, [esp + 0x38]
push ecx
lea ecx, [ebx + 8]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
call fcn.3005df90
lea edx, [esp + 0x34]
push edx
lea ecx, [ebx + 0xc]
call fcn.3005df90
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
test al, 4
je 0x300ee30a
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xf7
mov byte [esp + 0x12], 0
mov al, byte [esp + 0x12]
test al, al
mov esi, ebx
je 0x300ee329
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.300ed550
mov esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x14]
cmp edx, ecx
mov dword [esp + 0x30], ecx
jb 0x300ee34e
mov eax, dword [eax + 0x28]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*4]
cmp edx, ecx
mov byte [esp + 0x13], 1
jb 0x300ee353
mov byte [esp + 0x13], 0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
mov ebp, dword [esp + 0x1c]
mov edx, dword [ebp]
mov ecx, ebp
mov dword [esp + 0x38], eax
xor edi, edi
call dword [edx + 0xc]
test eax, eax
je 0x300ee379
mov ecx, ebp
call fcn.300ebeb0
mov edi, eax
test esi, esi
je 0x300ee3a9
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x5c]
push ecx
push edx
push esi
mov ecx, ebp
call fcn.300ed9a0
test edi, edi
je 0x300ee3a9
push 0
mov ecx, edi
call fcn.300e4520
test eax, eax
je 0x300edcd7
mov al, byte [ebx + 0x11]
test al, al
jne 0x300ee464
cmp byte [ebx + 0x10], 0x40
ja 0x300ee464
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x18]
push eax
call fcn.30105020
mov esi, eax
test esi, esi
je 0x300ee464
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
push eax
call fcn.30013cb0
cmp dword [esp + 0x28], 7
jl 0x300ee3ef
inc byte [ebx + 0x10]
jmp 0x300ee3f3
mov byte [ebx + 0x11], 1
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x138]
mov ecx, dword [eax + 0xc3c]
push 0
push 0
push esi
push 0
push 1
push ecx
mov ecx, dword [esp + 0x30]
push 0
push ebp
call fcn.300fbca0
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x674]
test eax, eax
jbe 0x300ee43f
dec eax
mov ecx, edx
mov dword [ecx + 0x674], eax
mov ecx, dword [ecx + 0x67c]
mov dword [ecx + eax*4], 2
cmp dword [esp + 0x28], 7
jl 0x300ee44b
dec byte [ebx + 0x10]
jmp 0x300ee44f
mov byte [ebx + 0x11], 0
test edi, edi
je 0x300ee464
push 0
mov ecx, edi
call fcn.300e4520
test eax, eax
je 0x300edcd7
mov al, byte [esp + 0x13]
test al, al
je 0x300ee4b6
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
cmp edx, dword [ecx + 0x20]
jne 0x300ee48a
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
cmp dword [eax + 8], ecx
je 0x300ee4b6
mov ecx, dword [esp + 0x1c]
mov al, byte [esp + 0x20]
test al, al
je 0x300ee49e
mov edx, dword [esp + 0x54]
push edx
call fcn.300eb480
jmp 0x300ee4aa
mov eax, dword [esp + 0x54]
push 0
push eax
call fcn.300eb260
test eax, eax
mov dword [esp + 0x14], eax
je 0x300edcd7
mov esi, dword [esp + 0x28]
cmp esi, 6
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x14]
jge 0x300ee4f1
test dl, dl
js 0x300ee4db
mov eax, dword [ecx + 8]
test al, 4
je 0x300ee4db
and eax, 0xfffffff8
add eax, 6
and byte [eax], 0x7f
test dh, 4
jne 0x300ee4f1
mov eax, dword [ecx + 8]
test al, 4
je 0x300ee4f1
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xfb
cmp esi, 8
jge 0x300ee50c
test dh, 0x10
jne 0x300ee50c
mov eax, dword [ecx + 8]
test al, 4
je 0x300ee50c
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xef
cmp esi, 9
jge 0x300ee527
test dh, 0x20
jne 0x300ee527
mov eax, dword [ecx + 8]
test al, 4
je 0x300ee527
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xdf
mov ebp, dword [esp + 0x14]
lea ecx, [esp + 0x58]
push ecx
mov ecx, ebp
call fcn.300ba140
test eax, eax
jne 0x300ee586
mov al, byte [esp + 0x12]
test al, al
jne 0x300ee586
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x1c]
push edx
push ebp
mov ecx, ebx
call fcn.300e9410
inc dword [0x30336670]
jne 0x300ee562
inc dword [0x30336674]
mov eax, dword [0x30336670]
mov dword [ebx + 8], eax
mov ecx, dword [0x30336674]
mov dword [ebx + 0xc], ecx
mov eax, dword [ebp + 8]
test al, 4
je 0x300ee58a
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xfe
jmp 0x300ee58a
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
mov ax, word [ecx]
cmp ax, 0x6f
jne 0x300ee5d1
cmp word [ecx + 2], 0x6e
jne 0x300ee5d1
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x54]
push edi
push edx
call fcn.30036f50
add esp, 8
cmp eax, 0xffffffff
je 0x300ee6d3
mov ecx, eax
mov edx, 1
shl edx, cl
mov byte [edi + 0xbdd], 1
or dword [ebx + 0x30], edx
jmp 0x300ee6d3
cmp ax, 0x5f
mov edi, dword [esp + 0x18]
jne 0x300ee6d3
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + 0xc8c]
mov edx, dword [esp + 0x54]
push eax
push ecx
push edx
call fcn.30007f50
add esp, 0xc
test al, al
je 0x300ee68b
mov edx, dword [ebp]
mov ecx, edx
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x300ee61a
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x300ee624
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x300ee756
mov eax, edx
mov ecx, eax
and ecx, 7
cmp cl, 7
jne 0x300ee63f
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
lea esi, [ebx + 0x14]
and eax, 0xfffffff8
mov edx, esi
push eax
and edx, 0xfffff000
mov edi, dword [edx]
push esi
push esi
mov ecx, edi
call fcn.300184c0
push eax
mov ecx, edi
call fcn.3020a1b0
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 0xbdd]
test cl, cl
jne 0x300ee687
mov esi, dword [esi]
test esi, esi
je 0x300ee687
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x300ee746
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x300ee675
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + 0xc9c]
mov edx, dword [esp + 0x54]
push eax
push ecx
push edx
call fcn.30007f50
add esp, 0xc
test al, al
je 0x300ee6d3
mov ecx, dword [ebp]
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x300ee6c0
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x300ee6ca
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x300ee6d3
or byte [ebx + 0x2c], 4
mov eax, dword [edi + 0x790]
test eax, eax
jne 0x300ee79e
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x300ee701
test byte [ebp + 8], 4
jne 0x300ee6f5
mov ecx, ebp
call fcn.300e99f0
mov eax, dword [ebp + 8]
and eax, 0xfffffff8
add eax, 6
or byte [eax], 0x20
mov eax, dword [edi + 0x54]
test eax, eax
lea esi, [edi + 0x28]
je 0x300ee736
mov eax, dword [esi + 0x90]
test eax, eax
je 0x300ee736
mov ecx, dword [eax + 0xc]
test ecx, ecx
jle 0x300ee736
mov eax, 2
push eax
push ebp
push eax
mov dword [esp + 0x68], eax
push 0
lea eax, [esp + 0x6c]
push eax
mov ecx, esi
call fcn.3009ba90
mov eax, dword [ebp + 8]
mov ecx, eax
and ecx, 3
test al, 4
jne 0x300ee77b
mov eax, ecx
jmp 0x300ee785
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0xbdd], 1
jmp 0x300ee687
lea eax, [ebx + 0x14]
mov edx, eax
push 0
and edx, 0xfffff000
mov esi, dword [edx]
push eax
push eax
mov ecx, esi
call fcn.300184c0
push eax
mov ecx, esi
call fcn.3020a1b0
jmp 0x300ee68b
and eax, 0xfffffff8
mov ax, word [eax + 6]
or ax, cx
movzx ecx, ax
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [ebx + 0x50]
lea edx, [esp + 0x5c]
push edx
push eax
push ecx
mov ecx, esi
call fcn.3009bdc0
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0xc]
mov esi, eax
test esi, esi
je 0x300ee8c8
mov eax, dword [edi + 0x58c]
test eax, eax
je 0x300ee8c8
lea eax, [esp + 0x5c]
push eax
mov ecx, ebp
call fcn.300ba2e0
mov edx, dword [esp + 0x5c]
mov eax, edx
and eax, 7
cmp eax, 7
mov ecx, edx
jne 0x300ee7e4
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x300ee7ee
and ecx, 0x1f
mov eax, ecx
cmp eax, 5
je 0x300ee8b0
mov ecx, dword [ebx + 0x20]
cmp ebp, ecx
mov dword [esp + 0x30], ecx
jb 0x300ee813
mov eax, dword [ebx + 0x28]
lea edx, [eax + eax*2]
lea eax, [ecx + edx*4]
cmp ebp, eax
jae 0x300ee813
mov bl, 1
jmp 0x300ee815
xor bl, bl
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x18]
push edx
mov dword [esp + 0x44], ecx
push esi
mov ecx, ebp
call fcn.301061d0
mov esi, eax
push esi
lea eax, [esp + 0x40]
push eax
mov ecx, ebp
call fcn.30101cc0
test bl, bl
mov ecx, dword [eax]
mov dword [esp + 0x5c], ecx
je 0x300ee88e
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
cmp edx, dword [ecx + 0x20]
jne 0x300ee860
mov eax, dword [esp + 0x40]
cmp dword [edi + 8], eax
je 0x300ee88e
mov al, byte [esp + 0x20]
test al, al
je 0x300ee874
mov edx, dword [esp + 0x54]
push edx
call fcn.300eb480
jmp 0x300ee880
mov eax, dword [esp + 0x54]
push 0
push eax
call fcn.300eb260
mov edi, eax
test edi, edi
mov dword [esp + 0x14], edi
je 0x300edcd7
mov ecx, dword [esp + 0x5c]
push ecx
push ebp
mov ecx, edi
call fcn.300ba9a0
push esi
call fcn.30208320
mov edx, dword [esp + 0x60]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
add esp, 4
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp]
push eax
and ecx, 0xfffffff8
push ecx
mov ecx, dword [edi + 0x59c]
push edx
call fcn.300eab50
pop esi
pop ebx
pop edi
mov eax, ebp
pop ebp
add esp, 0x40
ret 0xc