Function at 0x407650
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x4076a8
mov dword [ebp - 0x18], edx
mov edx, dword [ebp + 8]
mov edi, ebx
mov dword [ebp - 0x14], ecx
and edi, 0xff000000
test edx, edx
je 0x4076af
push 1
push 0x68
call dword [sym.imp.mozglue.dll_calloc]
mov edx, dword [ebp + 8]
add esp, 8
mov dword [eax + 0x58], edx
mov esi, eax
mov eax, dword [edx + 0x78]
test eax, eax
je 0x4076b3
mov ecx, eax
mov eax, dword [eax + 0x60]
test eax, eax
jne 0x407691
inc dword [edx + 0x7c]
inc dword [edx + 0x80]
mov dword [ecx + 0x60], esi
jmp 0x4076c2
xor ecx, ecx
jmp case.default.0x407eeb
xor esi, esi
jmp 0x4076c2
xor eax, eax
inc eax
mov dword [edx + 0x7c], eax
mov dword [edx + 0x80], eax
mov dword [edx + 0x78], esi
mov eax, ebx
and eax, 7
cmp edi, 0x9ffffff
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0
jg 0x40771a
cmp edi, 0x2ffffff
jle 0x407776
cmp edi, 0x5ffffff
jle 0x4077ea
cmp edi, 0x7ffffff
jg 0x4078a9
cmp edi, 0x6000000
je 0x407904
cmp edi, 0x7000000
je 0x4078c1
jmp 0x407f1e
cmp edi, 0xfffffff
jle 0x4077b5
cmp edi, 0x3fffffff
jle 0x40781a
cmp edi, 0x5fffffff
jg 0x4078cd
cmp edi, 0x40000000
je 0x407919
cmp edi, 0x50000000
jne 0x407f1e
xor eax, eax
cmp byte [edx + 0x29], 4
mov ecx, 0x1c
mov edx, 0xe
cmove edx, ecx
sete al
mov ecx, edx
or eax, 0x14
jmp 0x407a11
cmp edi, 0xfeffffff
jg 0x40784d
cmp edi, 0x80000000
je 0x407922
cmp edi, 0x90000000
je 0x407935
mov edx, dword [ebp + 8]
cmp edi, 0xa0000000
jne 0x407f1e
mov dword [esi + 4], 0xb
jmp 0x4079ed
cmp edi, 0xcffffff
jg 0x40787d
cmp edi, 0xa000000
je 0x407941
cmp edi, 0xb000000
je 0x407957
cmp edi, 0xc000000
je 0x4078f8
jmp 0x407f1e
cmp edi, 0x3000000
je 0x407963
cmp edi, 0x4000000
je 0x4078f8
cmp edi, 0x5000000
jne 0x407f1e
mov dword [esi + 4], 5
jmp 0x4079ed
cmp edi, 0x10000000
je 0x40797e
cmp edi, 0x20000000
je 0x407987
mov edx, dword [ebp + 8]
cmp edi, 0x30000000
jne 0x407f1e
mov dword [esi + 4], 8
jmp 0x407929
cmp edi, 0xff000000
je 0x407997
cmp edi, 0x1000000
je 0x4079a4
cmp edi, 0x2000000
jne 0x407f1e
mov dword [esi + 4], 1
jmp 0x407974
cmp edi, 0xd000000
je 0x4079b9
cmp edi, 0xe000000
je 0x4079da
cmp edi, 0xf000000
jne 0x407f1e
lea eax, [edx + 0x29]
jmp 0x407f21
cmp edi, 0x8000000
je 0x4079e6
cmp edi, 0x9000000
jne 0x407f1e
mov dword [esi + 4], 4
jmp 0x40798e
cmp edi, 0x60000000
je 0x4079f6
cmp edi, 0x70000000
jne 0x407f1e
xor eax, eax
mov dword [esi + 4], 0x18
mov ecx, 0x200
jmp 0x407a16
mov dword [esi + 4], 3
jmp 0x4079d1
xor eax, eax
cmp byte [edx + 0x29], 4
sete al
lea ecx, [eax + eax + 4]
or eax, 0xe
jmp 0x407a11
mov dword [esi + 4], 9
jmp 0x407929
mov dword [esi + 4], 0x19
xor eax, eax
mov ecx, 0xa
jmp 0x407a16
mov dword [esi + 4], 0xd
jmp 0x4079ed
xor eax, eax
cmp byte [edx + 0x29], 4
mov ecx, 6
sete al
xor eax, 0x11
jmp 0x407a11
mov dword [esi + 4], 0xc
jmp 0x4079ed
cmp byte [edx + 0x2a], 4
mov dword [esi + 4], 1
je 0x407f3b
xor ecx, ecx
inc ecx
mov eax, ecx
jmp 0x407a17
mov dword [esi + 4], 6
jmp 0x4079d1
mov dword [esi + 4], 7
xor eax, eax
mov ecx, 8
jmp 0x407a16
xor eax, eax
mov dword [esi + 4], 0xff
xor ecx, ecx
jmp 0x407a16
xor eax, eax
cmp byte [edx + 0x2a], 4
sete al
lea ecx, [eax*4 + 4]
xor eax, 0x13
jmp 0x407a11
mov al, byte [edx + 0x2a]
xor ecx, ecx
cmp al, 4
sete cl
or ecx, 2
cmp al, 4
mov dword [esi + 4], ecx
jne 0x407f3b
xor eax, eax
mov ecx, 4
jmp 0x407a16
mov dword [esi + 4], 2
jmp 0x407f3b
mov dword [esi + 4], 0xa
xor eax, eax
mov ecx, 0x10
jmp 0x407a16
xor eax, eax
cmp byte [edx + 0x29], 4
mov ecx, 0x6c
mov edx, 0x5e
cmove edx, ecx
sete al
mov ecx, edx
or eax, 0x16
mov dword [esi + 4], eax
xor eax, eax
inc eax
mov edx, dword [ebp + 0x14]
cmp ecx, 1
mov edi, 0x11
cmovne edi, eax
shr ebx, 0x10
dec bl
cmp bl, 0x17
ja case.default.0x407a3e
mov al, byte [ebp + 0x18]
mov dword [ebp - 0x10], esi
mov esi, ecx
movzx ecx, bl
jmp dword [ecx*4 + 0x44f5e0]
mov ebx, edx
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
push edi
push dword [ebp + 8]
mov esi, dword [ebp - 0x10]
push esi
call fcn.00406c80
mov edx, ebx
jmp 0x407c8d
mov esi, dword [ebp - 0x10]
cmp dword [ebp - 0x18], 1
mov dword [esi], 5
ja 0x407f4a
mov ecx, dword [ebp + 8]
xor eax, eax
cmp byte [ecx + 0x29], 4
sete al
lea ecx, [eax + eax + 4]
jmp 0x407ec9
mov esi, dword [ebp - 0x10]
shr al, 3
and al, 7
add al, 0x31
jmp 0x407c03
mov esi, dword [ebp - 0x10]
shr al, 3
and al, 7
add al, 0x29
jmp 0x407c03
mov esi, dword [ebp - 0x10]
mov edi, edx
xor ecx, ecx
lea eax, [esi + 0x10]
mov dword [esi], 1
mov dword [esi + 0xc], 0x40
mov dword [esi + 0x14], ecx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x28], ecx
push 8
push str.eflags
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov eax, dword [0x49aa30]
mov dword [esi + 0x18], eax
mov eax, dword [0x49aa2c]
mov dword [esi + 0x1c], eax
mov eax, dword [0x49aa34]
test eax, eax
je 0x407b13
movzx ecx, byte [eax + eax + 0x44f564]
movzx eax, byte [eax + eax + 0x44f565]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], eax
mov dword [esi + 0x20], 0x51
jmp 0x407d7f
mov esi, dword [ebp - 0x10]
shr al, 3
and al, 7
movzx eax, al
add edi, eax
mov dword [esi], 1
jmp 0x407c0c
mov eax, dword [ebp - 0x10]
cmp esi, dword [ebp - 0x18]
mov ecx, esi
mov dword [eax], 2
jbe 0x407f76
mov esi, dword [ebp - 0x10]
jmp 0x407ec9
mov ecx, esi
cmp esi, 1
mov esi, dword [ebp - 0x10]
mov dword [esi + 0xc], 1
jne 0x407f91
xor ecx, ecx
mov eax, dword [ebp - 0x14]
mov dword [esi], 3
inc ecx
cmp dword [ebp - 0x18], 0
je 0x407ec9
mov al, byte [eax]
mov byte [esi + 0x10], al
jmp 0x407ec9
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov dword [esi], 7
mov dword [esi + 0xc], 8
movzx ecx, byte [eax + 0x29]
cmp ecx, dword [ebp - 0x18]
ja 0x407ec9
mov eax, ecx
dec al
cmp al, 7
ja case.0x407bb7.3
movzx eax, al
jmp dword [eax*4 + 0x44f640]
mov eax, dword [ebp - 0x14]
jmp 0x407f8b
mov esi, dword [ebp - 0x10]
shr al, 3
and al, 7
add al, 0x19
jmp 0x407c03
mov edi, edx
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
push 0x19
jmp 0x407c7f
mov esi, dword [ebp - 0x10]
shr al, 3
and al, 7
add al, 0x41
jmp 0x407c03
mov esi, dword [ebp - 0x10]
shr al, 3
and al, 7
add al, 0x39
jmp 0x407c03
mov esi, dword [ebp - 0x10]
shr al, 3
and al, 7
add al, 0x21
mov dword [esi], 1
movzx edi, al
lea eax, [esi + 0x10]
xor ecx, ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x28], ecx
lea ecx, [edi*4]
lea ebx, [ecx + ecx*4 + 0x49a3e4]
push 8
push ebx
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov eax, dword [ebx - 8]
mov dword [esi + 0x18], eax
mov eax, dword [ebx - 0xc]
mov dword [esi + 0x1c], eax
mov eax, dword [ebx - 4]
test eax, eax
je 0x407c6a
movzx ecx, byte [eax + eax + 0x44f564]
movzx eax, byte [eax + eax + 0x44f565]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], eax
mov dword [esi + 0x20], edi
mov edx, dword [ebp + 0x14]
jmp 0x407ec7
mov edi, edx
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
push 0x21
push dword [ebp + 8]
mov esi, dword [ebp - 0x10]
push esi
call fcn.00406c80
mov edx, edi
add esp, 0xc
mov ecx, eax
jmp 0x407ec9
mov esi, dword [ebp - 0x10]
mov edi, edx
xor ecx, ecx
lea eax, [esi + 0x30]
mov dword [esi], 6
mov dword [esi + 0xc], 0x44a
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], ecx
mov dword [esi + 0x48], ecx
push 8
push 0x49a470
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov eax, dword [0x49a468]
mov dword [esi + 0x38], eax
mov eax, dword [0x49a464]
mov dword [esi + 0x3c], eax
mov eax, dword [0x49a46c]
test eax, eax
je 0x407d03
movzx ecx, byte [eax + eax + 0x44f564]
movzx eax, byte [eax + eax + 0x44f565]
mov dword [esi + 0x44], ecx
mov dword [esi + 0x48], eax
mov dword [esi + 0x40], 7
jmp 0x407d7f
mov esi, dword [ebp - 0x10]
mov edi, edx
xor ecx, ecx
lea eax, [esi + 0x30]
mov dword [esi], 6
mov dword [esi + 0xc], 0x14a
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], ecx
mov dword [esi + 0x48], ecx
push 8
push 0x49a484
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov eax, dword [0x49a47c]
mov dword [esi + 0x38], eax
mov eax, dword [0x49a478]
mov dword [esi + 0x3c], eax
mov eax, dword [0x49a480]
test eax, eax
je 0x407d78
movzx ecx, byte [eax + eax + 0x44f564]
movzx eax, byte [eax + eax + 0x44f565]
mov dword [esi + 0x44], ecx
mov dword [esi + 0x48], eax
mov dword [esi + 0x40], 8
mov edx, edi
jmp 0x407ec7
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp - 0x10]
xor ecx, ecx
lea eax, [edi + 0x40]
mov dword [esi], 1
mov dword [esi + 0xc], 0x40
cmp eax, 0x5c
ja 0x407ec9
mov edx, edi
mov eax, edi
add edx, 0x41
jmp 0x407e02
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp - 0x10]
xor ecx, ecx
lea eax, [edi + 0x38]
mov dword [esi], 1
mov dword [esi + 0xc], 0x40
cmp eax, 0x5c
ja 0x407ec9
mov edx, edi
mov eax, edi
add edx, 0x39
jmp 0x407e02
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp - 0x10]
xor ecx, ecx
lea eax, [edi + 0x48]
mov dword [esi], 1
mov dword [esi + 0xc], 0x40
cmp eax, 0x5c
ja 0x407ec9
mov edx, edi
mov eax, edi
add edx, 0x49
lea eax, [esi + 0x10]
xor ecx, ecx
mov ebx, edx
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x18], ecx
lea ecx, [edx*4]
lea edi, [ecx + ecx*4 + 0x49a3e4]
push 8
push edi
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov eax, dword [edi - 8]
mov dword [esi + 0x18], eax
mov eax, dword [edi - 0xc]
mov dword [esi + 0x1c], eax
mov eax, dword [edi - 4]
test eax, eax
je 0x407e61
movzx ecx, byte [eax + eax + 0x44f564]
movzx eax, byte [eax + eax + 0x44f565]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], eax
mov dword [esi + 0x20], ebx
jmp 0x407c6d
mov dword [esi], 0
jmp 0x407ec7
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x10]
xor ecx, ecx
lea eax, [edi + ebx - 1]
mov dword [esi], 1
mov dword [esi + 0xc], 0x40
cmp eax, 0x5c
ja 0x407ec9
mov eax, ebx
lea eax, [esi + 0x10]
xor ecx, ecx
add edi, ebx
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x18], ecx
jmp 0x407c26
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp + 0xc]
mov dword [esi], 2
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], 0x40
xor ecx, ecx
test edx, edx
je case.default.0x407eeb
mov eax, dword [esi]
and eax, 0xfffffffe
cmp eax, 6
jne case.default.0x407eeb
and edx, 0xf00
add edx, 0xffffff00
shr edx, 8
cmp edx, 5
ja case.default.0x407eeb
jmp dword [edx*4 + 0x44f6a0]
or byte [esi + 0xd], 2
jmp case.default.0x407eeb
or byte [esi + 0xd], 3
jmp case.default.0x407eeb
or byte [esi + 0xd], 4
jmp case.default.0x407eeb
or byte [esi + 0xd], 1
jmp case.default.0x407eeb
or byte [esi + 0xd], 5
jmp case.default.0x407eeb
or byte [esi + 0xd], 6
mov eax, ecx
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [edx + 0x2a]
movzx ecx, byte [eax]
xor eax, eax
cmp ecx, 4
sete al
or eax, 2
cmp ecx, 2
mov dword [esi + 4], eax
jne 0x407a14
mov eax, 9
mov ecx, 2
jmp 0x407a17
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
movzx eax, word [edi]
mov word [esi + 0x10], ax
cmp byte [ecx + 0x29], 4
jne 0x407fc0
cmp dword [ebp - 0x18], 4
mov ecx, 6
jb 0x407ec9
mov eax, dword [edi]
mov dword [esi + 0x14], eax
jmp 0x407ec9
lea eax, [ecx - 1]
cmp eax, 7
ja case.0x407f7e.3
jmp dword [eax*4 + 0x44f680]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
movsd xmm0, qword [eax]
jmp 0x407fb6
cmp ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov dword [esi], 4
ja 0x407ec9
lea eax, [ecx - 1]
cmp eax, 7
ja case.0x407fab.3
jmp dword [eax*4 + 0x44f660]
movsd xmm0, qword [edi]
movsd qword [esi + 0x10], xmm0
jmp 0x407ec9
mov word [esi + 0x14], ax
mov ecx, 4
jmp 0x407ec9
mov eax, dword [ebp - 0x14]
jmp 0x407fde
mov eax, dword [ebp - 0x14]
jmp 0x407fe8
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
mov al, byte [eax]
jmp 0x407ffe
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
movzx eax, word [eax]
jmp 0x40800c
mov eax, dword [ebp - 0x14]
jmp 0x407ff8
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
mov eax, dword [eax]
jmp 0x40801c
mov al, byte [edi]
xor ecx, ecx
mov byte [esi + 0x10], al
inc ecx
jmp 0x407ec9
movzx eax, word [edi]
mov word [esi + 0x10], ax
mov ecx, 2
jmp 0x407ec9
mov eax, dword [edi]
mov dword [esi + 0x10], eax
jmp 0x407ec9